У меня есть база данных, содержащая все таблицы latin1 с параметрами сортировки latin1_swedish_ci.
Код: Выделить всё
+--------------------------+--------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | C:\xampp\mysql\share\charsets\ |
+--------------------------+--------------------------------+
Когда я отправляю имя сотрудника Например, в моих веб-формах, содержащих символ тильды, он отображается в моей таблице как «Мари Каньон» и так же отображается на моих веб-страницах, когда я просматриваю запись сотрудника.
Если я изменю кодировку веб-страницы на utf-8, она будет отображаться правильно как «Мари Каньон». Итак, я предполагаю, что каким-то образом я кодирую UTF-8 в своих таблицах latin1. Но я не понимаю, где это могло произойти.
Насколько мне известно, PDO не занимается кодированием. Мои веб-страницы объявлены iso-8859-1, поэтому я полагаю, что проблема не в PHP. Мой символ_set_connection в MySQL имеет значение Latin1.
Где это могло произойти?
Дополнительная информация:
Ubuntu 10.04.2 LTS
MySQL 5.1.41-3ubuntu12.9-log
PHP5: 5.3.2
Apache2: 2.2.14
Подробнее здесь: https://stackoverflow.com/questions/503 ... -correctly