我遇到utf8_encode()
功能问题。
这是一个例子
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
header("Content-Type: text/html; charset=utf-8");
$str = "Şşİğ";
echo utf8_encode($str);
?>
我看到的输出是
SsIg(第三个是大写i)
如果我不使用utf8_encode()
这就是我得到的
AAA°的
因此,这对某些语言并不适用。它只是使它有点意义而不是正确。
由于
答案 0 :(得分:3)
如果字符串的编码已经是UTF8(而不是ISO-8859-1(5)),you need do nothing:
utf8_encode - 将ISO-8859-1字符串编码为UTF-8
实际上,在已经是UTF8的字符串上运行utf8_encode
肯定会造成某种破坏。
你说文件编码是UTF8,但你得到的看起来像ISO-8859。所以我怀疑你有一些东西搞乱了编码链。
验证Content-Type
标题(即验证您设置的标题,确实是发送的标题),仔细检查文件编码以及浏览器设置(它应该是UTF8或自动检测。)
另外,很奇怪你应该得到“SsIg” - 这绝对是不 UTF8编码的预期行为。似乎某些东西试图通过将它们映射到最相似的ASCII字符来将您的字符映射回ASCII集。因此,我还会检查中间的任何代理或缓存或任何,以便操作脚本发送的数据。