如何判断PHP是否输出UTF8

时间:2018-01-20 12:44:26

标签: php utf-8

我有以下代码在PHP文件中生成PHP utf8

FILE* fp = fopen("$path$debug.txt","r");

标题

中有以下内容
mb_regex_encoding('UTF-8');
mb_internal_encoding('UTF-8');

我正在使用CURL

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

这有一些奇怪的字符,引号和双引号显示为â

我发现这会正确输出字符串,但html实体显示为curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8'); 标记。

?

这意味着我的页面实际上并没有在utf8中输出..我正在使用firefox,我该如何解决这个问题?!使页面完全兼容utf8(理想),或删除html实体。

我尝试在utf8_decode之前使用替换,但它会混淆输出

utf8_decode($str);

1 个答案:

答案 0 :(得分:0)

在大多数情况下,函数mb_detect_encoding($str)会告诉您变量的编码。

您可能还想查看标题

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

现在,在你的curl请求中,你正在设置curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8');现在这个设置的有效选项是&#34; identity&#34;,&#34; deflate&#34;或&#34; gzip&#34;,UTF-8不在列表中, 所以删除该行,然后检测您收到的内容的编码,然后使用mb_convert_encoding()

等函数相应地转换编码