Правильная установка кодировки

 
0
 
PHP
ava
animegirl | 19.03.2013, 23:25
Когда года два назад мучилась с кодировками, сказали мне люди использовать после установления соединения такую связку команд:

SET CHARACTER SET utf8;
SET NAMES utf8;


И делала я это, всё это время успешно, не задумываясь, но вот наткнулась на утверждение, что это не верный подход, и надо использовать

mysql_set_charset('utf8');


Вот теперь сижу и думаю, менять коней или не менять, и главное ПОЧЕМУ?
Comments (7)
ava
Fortop | 19.03.2013, 23:22 #
Цитата (animegirl @  19.3.2013,  22:25 findReferencedText)
И делала я это, всё это время успешно

И продолжай делать.
ava
Sanchezzz | 19.03.2013, 23:23 #
Функция делает одно и тоже что и 2 запроса.
лично давно отказался от mysql => mysqli  затем к PDO

$pdo = new PDO("mysql:host=localhost;dbname=world;charset=utf8", 'my_user', 'my_pass');


ava
Gold Dragon | 19.03.2013, 23:28 #
animegirl, если уж используешь этот подход, то лучше пользуйся функцией, чем выполнять запрос. Так советуют разработчики
ava
animegirl | 20.03.2013, 00:18 #
Fortop,
Gold Dragon,
А вас можно привести к консенсусу? )
ava
skyboy | 20.03.2013, 01:20 #
http://www.php.net/manual/en/mysqlinfo.concepts.charset.php
http://dev.mysql.com/doc/refman/5.5/en/cha...figuration.html
set names utf8 устанавливает три конфигурационные переменные: кодировку клиента, кодировку соединения и кодировку результата. сложно представить, в каком случае возможно рассогласование, но я бы использовал set names.
mysql_set_charset, с другой стороны, влияет на поведение *_real_escape_string, что не возможно при помощи SQL запроса SET NAMES …
самое надежное(хотя, возможно, и избыточное) — использовать и то, и то smile
самое правильное — разобраться, в каких случаях mysql_set_charset сделает меньше, чем SET NAMES
ava
animegirl | 20.03.2013, 01:30 #
skyboy,
Хорошо, сделать всё вместе не проблема, вопрос тогда в каком порядке?
И имеет ли порядок значение?
В результате, всё без исключения должно быть utf8
ava
Fortop | 20.03.2013, 01:51 #
Цитата (animegirl @  20.3.2013,  00:18 findReferencedText)
А вас можно привести к консенсусу? ) 

Он прост.
Поскольку твой код делает примерно то же самое что и mysql_set_charset
То менять шило на мыло - резона нет.

Поэтому пользовалась? Пользуйся и дальше.
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit