我使用iconv php函数,但有些字符无法正确转换:
... $s = iconv('UTF-16','UTF-8',$s); ... $s = iconv('UTF-16//IGNORE',$s); ... $s = iconv('UTF-16LE',$s); ... $s = iconv('UTF-16LE//IGNORE',$s); ...
我也尝试mb_convert_encoding函数,但无法解决我的问题.
示例文本文件:9px.ir/utf8-16LE.rar
iconv
supports the
UTF-16LE
encoding.
您可以使用它将UTF-16LE的编码转换为UTF-8:
$result = iconv($in_charset = 'UTF-16LE',$out_charset = 'UTF-8',$str); if (false === $result) { throw new Exception('Input string could not be converted.'); }
我只是想知道UTF-16LE
中可用的所有代码点是否在UTF-8
中可用.但我认为这应该适合您的情况.
编辑:我无法在自己的盒子上重现问题,但在another box我遇到了这个通知:
Notice: iconv() [function.iconv]: Wrong charset,conversion from
UTF-16LE' to
UTF-8′ is not allowed in …
看起来并非所有iconv版本都能将UTF-16LE转换为UTF-8.
这可能是使用mb_convert_encoding
Docs的变通方法,至少在这种情况下(Demo):
$result = mb_convert_encoding($str,'UTF-16LE');
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。