Я борюсь с кодировкой содержимого внешнего интерфейса. В базе данных MySQL сопоставление latin1_swedish_ci
. Также сопоставление поля latin1_swedish_ci
. PHP-скрипт закодирован в UTF-8, и вывод в браузере дает мне UTF-8. Все работает нормально, кроме содержимого этой базы данных. Соединение с базой данных должно быть UTF-8 (Typo3 4.7), а содержимое
улица
но это должно быть straße
.
mb_detect_encoding($data['street'],'UTF-8')
говорит, что это UTF-8
. Если я использую utf8_decode()
, я получаю
улица
Если я использую utf8_encode()
, я получаю
улица
Мое предположение заключалось в том, что данные в кодировке UTF-8 хранятся в ISO-8859-1
, но если это так, то здесь не должно быть таких проблем. Как узнать какая реальная кодировка?
PS: Я не могу изменить кодировку источника!
Мое решение моей первоначальной проблемы:
Мне пришлось установить соединение с базой данных с UTF-8 на ISO-8859-1 с помощью этой строки кода.
$res = $GLOBALS['TYPO3_DB']->sql_query("SET NAMES latin1");