1

作为 . 的第二个参数传递的首选字符编码顺序是什么mb_detect_encoding( )

我问这个是因为某些字符编码与其他字符编码重叠,例如 ASCII 为 UTF(在某些情况下)返回,EUC-CN 为 gb2312,以及 EUC-CN、EUC-JP、EUC-KR、EUC-TW 中的任何一个,以较早出现的为准传递给函数的序列返回简体中文 EUC-CN 兼容字符串。

这是我收集的一些,但我想让列表尽可能全面。

EUC-CN
EUC-JP
EUC-KR
EUC-TW
SJIS
ASCII
JIS
UTF-8
EUC-JP
EUC-CN
EUC-KR
EUC-TW
SJIS

请帮助我更正订单并使此列表尽可能大。

编辑1:

我想做的就是将任何字符串转换为utf8。

编辑2:

考虑到以下建议,我想尽量减少在编码转换中浪费文本的可能性,因为转换后的文本是我的网站唯一依赖的东西。所以,即使我使用的解决方案不是完美的。请您演示最可靠的解决方案吗?

4

1 回答 1

2

没有真正的首选顺序可以为您提供最准确的响应。

在许多字符集中总会有可能被检测到并且有效的字符串。mb_detect_encoding 无法确定哪个是正确的。

解决此问题的唯一方法是:

  1. 让懂语言的人选择正确的编码。
  2. 潜在地分析字符串中的实际文本,并“猜测”最有可能是正确的。

对于第二个我不知道现成的选项,但我可以想象诸如字符出现率、贝叶斯过滤器、神经网络和字典检查之类的东西可能很有用;)

于 2012-08-02T17:49:27.940 回答