我的某些脚本使用了不同的编码,当我尝试将它们组合时,这已成为一个问题。
但是我无法更改它们使用的编码,而是要更改脚本A的结果编码,并将其用作脚本B中的参数。
所以:有什么简单的方法可以在PHP中将字符串从UTF-8更改为ISO-88591?我看过utf_encode和_decode,但是他们没有做我想要的。为什么不存在任何“ utf2iso()”功能或类似功能?
我认为我的字符无法以ISO格式编写,因此这不是一个大问题。
看看iconv()或mb_convert_encoding()。只是顺便:为什么不utf8_encode()和utf8_decode()为你工作?
iconv()
mb_convert_encoding()
utf8_encode()
utf8_decode()
utf8_decode —将使用UTF-8编码的ISO-8859-1字符的字符串转换为单字节ISO-8859-1 utf8_encode —将ISO-8859-1字符串编码为UTF-8
utf8_decode —将使用UTF-8编码的ISO-8859-1字符的字符串转换为单字节ISO-8859-1
utf8_encode —将ISO-8859-1字符串编码为UTF-8
所以本质上
$utf8 = 'ÄÖÜ'; // file must be UTF-8 encoded $iso88591_1 = utf8_decode($utf8); $iso88591_2 = iconv('UTF-8', 'ISO-8859-1', $utf8); $iso88591_2 = mb_convert_encoding($utf8, 'ISO-8859-1', 'UTF-8'); $iso88591 = 'ÄÖÜ'; // file must be ISO-8859-1 encoded $utf8_1 = utf8_encode($iso88591); $utf8_2 = iconv('ISO-8859-1', 'UTF-8', $iso88591); $utf8_2 = mb_convert_encoding($iso88591, 'UTF-8', 'ISO-8859-1');
所有这些都应该做同样的事情- utf8_en/decode()不需要特殊的扩展,mb_convert_encoding()不需要ext / mbstring,也iconv()需要ext / iconv。
utf8_en/decode()