mb_detect_encoding определяет ASCII как UTF-8?

Я пытаюсь автоматически конвертировать импортированные метаданные 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 как исходная кодировка?

Ответы на вопрос(3)

Ваш ответ на вопрос