mb_detect_encoding определяет ASCII как UTF-8?
m пытается автоматически конвертировать импортированные метаданные IPTC из изображений в UTF-8 для хранения в базе данных на основе PHPmb_
функции.
В настоящее время это выглядит так:
$val = mb_convert_encoding($val, 'UTF-8', mb_detect_encoding($val));
Однако когдаmb_detect_encoding()
предоставляется строка ASCII (специальные символы в полях Latin1 из 192-255), она определяет ее как UTF-8, поэтому при следующей попытке преобразовать все в надлежащий UTF-8 все специальные символы удаляются.
Я пытался написать свой собственный метод, ища значения Latin1, и если ничего не произошло, я бы позволилmb_detect_encoding
решить, что это такое. Но я остановился на полпути, когда понял, что могуне быть уверенным, что другие кодировки неиспользовать те же байтовые значения для других вещей.
Итак, есть ли способ правильно определить ASCII для подачи наmb_convert_encoding
как исходная кодировка?