Я работаю над проектом на Филиппинах, где у многих людей есть специальные латинские символы тильды в их именах.
У меня есть база данных, в которой все таблицы на латинице 1 установлены с сопоставлением 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\ |
+--------------------------+--------------------------------+
Заголовки моей веб-страницы объявляют iso-8859-1 в качестве набора символов.
Когда я отправляю имя сотрудника, содержащее символ тильды, например, через мои веб-формы, оно появляется в моей таблице как 'Marie Cañon 'и появляется на моих веб-страницах так же, когда я просматриваю запись сотрудника.
Если я изменю кодировку веб-страницы на utf-8, она будет корректно отображаться как «Marie Cañon».Итак, я предполагаю, что каким-то образом я кодирую UTF-8 в моих таблицах latin1.Но я не совсем понимаю, где это может произойти.
Насколько я знаю, PDO не занимается кодированием.Мои веб-страницы объявлены iso-8859-1, поэтому я полагаю, что PHP не вызывает проблемы.Мой персонаж_с_связи в лат. 1 является латинским.
Где это может произойти?
Дополнительная информация: Ubuntu 10.04.2 LTS MySQL 5.1.41-3ubuntu12.9-log PHP5: 5.3.2 Apache2:2.2.14