Whatsapp分享PHP链接体验中文描述残破的中文字符

问题描述:

我们的PHP页面只是一个由元描述中的中文字符组成的UTF-8网页。Whatsapp分享PHP链接体验中文描述残破的中文字符

我不知道为什么当有人试图将链接分享到WhatsApp时,它显示了破碎的字母。

但我分享它发现它没有损坏(正常)。

背后有什么可能的原因?我们增加了两项:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

header('Content-Type: text/html; charset=UTF-8'); 

有人有任何线索?谢谢!

==========

enter image description here

+0

重复http://stackoverflow.com/questions/279170/utf-8-all-the-way-through –

+0

我不知道为什么,但[这说](https://richpreview.com/? url = http%3A%2F%2Fentrepreneur-times.com%2Fl%2Ftch%2Fblog%2F%3Fid%3D12)找不到您的元描述标记。也许它是由于UTF- *问题而错误生成的? – sgr12

+0

更改你的字符集,doc级别希望能够做到这一点,可能要看起来更远......等等,等等......语言属性!会有帮助吗? – admcfajn

正在使用的软件(假设博客软件)不能很好地处理UTF-8编码的内容,导致非UTF8输出到浏览器。

这并不是说博客软件在所有内容操作中都会有缺陷,更多的情况正好相反,它只在某些内容操作中存在缺陷。但它发生了,我已经看到了那里的每一页上,是足以让a simple UTF-8 check失败:

$ curl -s 'http://entrepreneur-times.com/l/tch/blog/?id=12' \ 
    | php -r 'var_dump(preg_match("~~u", file_get_contents("php://stdin")));' 
bool(false) 

问题是描述文本(用于描述和OG HTML meta标签:描述)的产生。该软件的这一部分没有考虑内容的Unicode UTF-8编码,只是在一些二进制长度切断(很可能,我没有看到代码)。这种切割方式打破了UTF-8的输出。

此修复程序是为了消除软件中的缺陷。

+0

@Vanson Wing Leung:Stackoverflow的例子在这里:https://stackoverflow.com/a/9087570/367456 - 如果你需要更多的控制检查[PHPs * intl * library](http://php.net/manual/ EN/book.intl.php)。 – hakre

+0

修好了,谢谢!道德:在尝试修剪字符串时总是使用mb_substr而不是substr –

+0

@VansonWingLeung:这是一个基于DOMText的变体:https://3v4l.org/YOvKK#v500 - 只是表明有多种方法可以实现此目的。 XML扩展通常是可用的。 – hakre

我试着用支架打开它仅支持UTF-8,它给了一个错误。当你说它是utf-8并不意味着它是utf-8。源代码也应该输出或写入utf-8。我会检查生成页面的代码是否也是utf-8或输出utf-8。