Каков предпочтительный порядок кодирования символов для mb_detect_encoding() в 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:
Учитывая приведенные ниже предложения, я хочу свести к минимуму возможность потери текста при преобразовании кодировки, потому что преобразованный текст - это единственное, на что опирается мой сайт. Так что, даже если решение, которое я использую, не является идеальным. Не могли бы вы продемонстрировать наиболее надежное решение?
1 ответ
Не существует настоящего предпочтительного порядка, который дает вам наиболее точный ответ.
Всегда будут строки, которые потенциально могут быть обнаружены и допустимы в нескольких наборах символов. mb_detect_encoding не может определить, какой из них правильный.
Единственный способ решить эту проблему - это:
- Имейте человека, который понимает язык, чтобы выбрать правильную кодировку.
- Потенциально проанализируйте фактический текст в вашей строке и "угадайте", что, скорее всего, будет правильным.
Во-вторых, я бы не знал готового варианта, но я могу представить, что такие вещи, как скорость появления символов, байесовские фильтры, нейронные сети и проверки по словарям, могут быть полезны;