UTF-8 到 UTF-16,使用 iconv 与 mbstring 的结果不同

UTF-8 to UTF-16, different results using iconv vs mbstring

我在 php 中使用 iconv 与 mb_convert_encoding 尝试将 UTF-8 转换为 UTF-16 时得到不同的结果。

echo iconv('UTF-8', 'UTF-16', 'test'); // ��test

echo mb_convert_encoding('test', 'UTF-16', 'UTF-8'); // test

注意 iconv() 输出开头的两个 � 符号。

关于为什么 mb_convert_encoding 没有做同样的事情有什么想法吗?

谢谢。

iconv 在输出字符串的开头添加一个 BOM。所以对于转换字符串,你可能想使用 mb_convert_encodingiconv 对文件更有用。