UTF-8 b mySQL
Суть такая.
В Сервере, БД и таблицах ставлю кодировку UTF-8 Станица и файлы в uTF-8 При записи в БД кирилицы в uTF8 на выходе через phpMyAdmin в ячейках находятся крякозяблы. Но при считывании данных с БД и выдачи всайте все ок. Помогает фича при коннекте к базе SET NAMES utf8 и крякозяблы пропадают. И отображается все по прежнему ок. Если данные опять же были занесены при этой команде. Старые при этойкоманде на выходе становятся крякозяблами как без нее в phpMyAdmin Вопрос. Как избавится от этой команды? Что надо сделать с таблицами/базой/сервером, что бы в них хранилось корректный код UTF-8 символов, а не крякозяблы и не использовать эту команду? Проблема. При экспортировании, если не устанавливать эту команду при занесении в базу, то выводятся крякозяблы... |
Решение найдено, но оно не применимо со стороны клиента =(
http://dev.mysql.com/doc/refman/5.1/...onnection.html Цитата:
|
Можно в init connect прописать SET NAMES utf8. Без доступа к настройкам мускуля никак. |
Теперь вопрос в другом. В других базах такая же фигня? например в постадж или мсскл или оракл?
|
Чтобы все корректно работало с кодировками в MySQL надо обязательно выставлять кодировку самого соединения:
mysql_query("SET NAMES utf8"); mysql_query("SET CHARACTER SET utf8" ); mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'" ); т.е. надо учитывать: - кодировку базы и таблиц - кодировку соединения - кодировку самих отправляемых/выводимых данных, т.е. в какой кодировке файл php. |
Это ясно уже. Вопрос в другом. В других типах баз такая же проблема? или это такая "фича" мускуля?
|
Особо с другими базами в вебе не работал, но посмотрел сейчас как в друпале сделан тонкий клиент к postgreSQL:
function db_connect($url) { ... $connection = @pg_connect($conn_string); ... pg_query($connection, "set client_encoding=\"UTF8\""); } т.е. походу тоже что-то подобное указывается. |
Часовой пояс GMT +3, время: 00:26. |