Я сделал следующие вещи:
- У меня есть электронная таблица с данными.В одной из строк есть символ ü.
- Я сохраняю это как файл CSV в OpenOffice.org.Когда он запрашивает кодировку символов, я выбираю UTF-8.
- Я использую Navicat для создания таблицы базы данных MySQL, InnoDB с кодировкой UTF-8 utf8_general и импортирую CSV.
- Iпопробуйте использовать PHP-функцию
htmlspecialchars($string, ENT_COMPAT, 'UTF-8')
, где $string
- строка, содержащая специальный символ ü.
Это дает мне ошибку: Недопустимая многобайтовая последовательность в аргументе .Когда я меняю 'UTF-8'
на 'ISO8859-1'
, ошибка не выдается, но отображается неправильный символ.(Символ «неизвестный символ», выглядит как <?>
)
Если я использую форму HTML для обновления строки в базе данных, ошибка исчезает и символ отображается правильно, однако, когда я смотрюна записи в Navicat это выглядит двумя символами:
[1/4][A with some thing on top of it]
Какой-то многобайтовый код, который не рассматривается как один символ.
Что происходит, гдечто-то идет не так, и что я могу с этим поделать?