在php中将UTF-16LE转换为UTF-8

前端之家收集整理的这篇文章主要介绍了在php中将UTF-16LE转换为UTF-8前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用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.');
}

iconvDocs.

我只是想知道UTF-16LE中可用的所有代码点是否在UTF-8中可用.但我认为这应该适合您的情况.

编辑:我无法在自己的盒子上重现问题,但在another box我遇到了这个通知

Notice: iconv() [function.iconv]: Wrong charset,conversion from UTF-16LE' toUTF-8′ is not allowed in …

看起来并非所有iconv版本都能将UTF-16LE转换为UTF-8.

这可能是使用mb_convert_encodingDocs的变通方法,至少在这种情况下(Demo):

$result = mb_convert_encoding($str,'UTF-16LE');
原文链接:https://www.f2er.com/php/133670.html

猜你在找的PHP相关文章