1
Проблема с кодировкой MySQL: из БД извлекаются «вопросики» вместо русских букв
Posted by Mirotvoretz
in
Веб-разработка
При разработке одного сайта столкнулся с такой проблемой: при обращении к базе данных MySQL для извлечения из таблицы нужной статьи, вместо букв сервер передаёт знаки вопроса.
Это происходит потому, что MySQL на внутреннем уровне работает с кодировкой UTF8 и перекодирует результат в требуемую форму (в моём варианте - в windows-1251) непосредственно перед передачей его клиенту (т.е. скрипту). В некоторых случаях оказывается, что кодировка клиента (скрипта) «не доходит» до MySQL. Соответственно, сервер передает «вопросики».
Порывшись на просторах инета, нашёл несколько способов решения этой проблемы.
Один из них мне подошел.
А именно: вписать в скрипт в том месте, где мы соединяемся с базой, такую строчку: mysql_query("SET NAMES cp1251").
У меня проблема с "вопросиками" сразу исчезла!
Это происходит потому, что MySQL на внутреннем уровне работает с кодировкой UTF8 и перекодирует результат в требуемую форму (в моём варианте - в windows-1251) непосредственно перед передачей его клиенту (т.е. скрипту). В некоторых случаях оказывается, что кодировка клиента (скрипта) «не доходит» до MySQL. Соответственно, сервер передает «вопросики».
Порывшись на просторах инета, нашёл несколько способов решения этой проблемы.
Один из них мне подошел.
А именно: вписать в скрипт в том месте, где мы соединяемся с базой, такую строчку: mysql_query("SET NAMES cp1251").
У меня проблема с "вопросиками" сразу исчезла!