警告 mb_convert_encoding() 未知编码 "WINDOWS-1256"。

3

在使用mb_convert_encoding()函数将windows-1256编码转换时出现错误:

警告:mb_convert_encoding():未知编码“WINDOWS-1256” (K:/xampp/htdocs/master/trunk/__swift/includes/functions.php:715)

我知道有一个替代函数iconv(),可以解决这个问题,但是我也知道iconv()可能存在一些问题。我正在深入研究这两个函数,了解它们在哪里和为什么被使用。非常感谢您的帮助。

1个回答

4

没有理由认为错误信息是不正确的:

未知编码“WINDOWS-1256”

您提到了两个函数:

  • mb_convert_encoding()支持的编码在PHP手册中列出。没有提到Win-1256。它们也可以通过mb_list_encodings()函数获得。看来您不能使用此扩展名进行此编码。

  • iconv()支持的编码在libiconv网站中列出。在那里我们可以找到CP1256。是的,这正是相同的编码,但是iconv()不支持另一个别名(顺便说一句,这是官方IANA名称)。


“valid” 指的是 libiconv 认为有效的内容,这在使用该软件时非常重要。然而,它是协议无关的,因为权威 IANA(字符集)注册表中唯一定义的名称是 windows-1256。 - Jukka K. Korpela
@JukkaK.Korpela - 我已经调整了我的答案以澄清。 - Álvaro González
1
错误信息是正确的,您的错误警告必须被禁用。您还可以查看:http://www.php.net/manual/en/mbstring.supported-encodings.php,'windows-1256'没有列出。 - Ravi Sharma
我完全误读了问题。你的错误信息明显是关于MB函数的。我已经更新了我的答案,使其更有用。 - Álvaro González

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接