Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php utf8_encode()不';真的不行_Php - Fatal编程技术网

Php utf8_encode()不';真的不行

Php utf8_encode()不';真的不行,php,Php,我在使用utf8\u 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); ?> 我看到的输出是

我在使用
utf8\u 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\u encode()
这就是我得到的

ÅÅÄ°Ä

所以,这对某些语言来说并不适用。这只是让它有点意义,而不是使它正确


如果字符串的编码已经是UTF8(与ISO-8859-1(5)相反),则表示感谢:

utf8_编码-将ISO-8859-1字符串编码为UTF-8

实际上,在一个已经是utf8的字符串上运行
utf8\u encode
,肯定会造成某种破坏

您说文件编码是UTF8,但得到的结果看起来像ISO-8859。所以我怀疑你把编码链搞乱了

验证
内容类型
标题(,即验证您设置的标题是否确实是发送的标题),再次检查文件编码以及浏览器设置(应为UTF8或autodetect)


另外,您应该得到“SsIg”这一点也很奇怪——这绝对不是UTF8编码的预期行为。似乎有什么东西试图通过将字符映射到最相似的ASCII字符来将它们映射回ASCII集合。因此,我也检查中间的任何代理或高速缓存或中间的任何东西来处理脚本所发送的数据。

< P>如果字符串的编码已经是UTF8(而不是ISO-859-1(5)),则:

utf8_编码-将ISO-8859-1字符串编码为UTF-8

实际上,在一个已经是utf8的字符串上运行
utf8\u encode
,肯定会造成某种破坏

您说文件编码是UTF8,但得到的结果看起来像ISO-8859。所以我怀疑你把编码链搞乱了

验证
内容类型
标题(,即验证您设置的标题是否确实是发送的标题),再次检查文件编码以及浏览器设置(应为UTF8或autodetect)


另外,您应该得到“SsIg”这一点也很奇怪——这绝对不是UTF8编码的预期行为。似乎有什么东西试图通过将字符映射到最相似的ASCII字符来将它们映射回ASCII集合。因此,我也会检查中间的任何代理或缓存,或者任何可以处理脚本发送的数据的位置。

可能有一个额外的字节不能转换。在这种情况下,utf-8会忽略它。检查该函数的文档,您应该能够自定义当某些内容无法转换为UTF8时被忽略或强制执行的内容PHP文件的编码是什么?@KarolyHorvath它也是UTF-8。公鸡,我会试试的,谢谢。如果是utf8,为什么要把它编码成utf8?我可以复制这种行为,去掉utf8_编码就可以解决它。这个功能是为<代码>将ISO-8859-1字符串编码为UTF-8。有趣的。。。您应该发送
标题(“内容类型:text/html;charset=utf-8”)在任何内容之前。其中可能有一个无法转换的额外字节。在这种情况下,utf-8会忽略它。检查该函数的文档,您应该能够自定义当某些内容无法转换为UTF8时被忽略或强制执行的内容PHP文件的编码是什么?@KarolyHorvath它也是UTF-8。公鸡,我会试试的,谢谢。如果是utf8,为什么要把它编码成utf8?我可以复制这种行为,去掉utf8_编码就可以解决它。这个功能是为<代码>将ISO-8859-1字符串编码为UTF-8
。有趣的。。。您应该发送
标题(“内容类型:text/html;charset=utf-8”)在任何内容之前。我检查过了,似乎一切都正常。奇怪的是,当我对我创建的变量使用
mb\u detect\u编码($str,“auto”)
时,它说它们已经是UTF-8了。然而,我看到一些奇怪的东西。还是不明白为什么。好吧,我已经修好了。我当时正在使用EasyHP for windows,我打算重新安装。仔细检查你所说的一切,现在一切正常。此外,为了解决我的问题,你在这里提供了一些很好的信息。非常感谢。我检查过了,一切似乎都很好。奇怪的是,当我对我创建的变量使用
mb\u detect\u编码($str,“auto”)
时,它说它们已经是UTF-8了。然而,我看到一些奇怪的东西。还是不明白为什么。好吧,我已经修好了。我当时正在使用EasyHP for windows,我打算重新安装。仔细检查你所说的一切,现在一切正常。此外,为了解决我的问题,你在这里提供了一些很好的信息。非常感谢你。