“”的优选字符编码顺序是什么;检测编码()”;在PHP中


What is the preferable character encoding order for "mb_detect_encoding( )" in PHP?

作为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:

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

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

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

解决这个问题的唯一方法是:

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

第二,我不知道有什么现成的选择,但我可以想象,字符出现率、贝叶斯滤波器、神经网络和字典检查等东西可能会很有用;)