Помогите пожалуйста разобраться с кодировкой. В mySQL задается (по умолчанию) кодировка utf8_general_ci. В php редактора ANSI (Если это важно). При выводе данных из БД русский шрифт отображается иероглифами, английские нормально. Как правильно выставить кодировку?
установить кодировку через mysql_set_charset не получается. Наверное версия mySQL ниже. Я правильно понял: кодировка в моей редакторе (Notepad++) и сервере mySQL должна быть одинакова? Если да, то на сервере нет таких кодировок как в редакторе. Я через phpMyAdmin создаю БД.
на серваке выбирайте сравнение/collationutf8_general_ci, кодировка/charset - UTF8. И то что выше скрин сделайте
22.09.2012, 11:42
Кирилл013
Вложений: 2
Вот с phpMyAdmin картинка, тут кодировка utf8_general_ci как вы и говорили. Вложение 4184
Вот список кодировок UTF-8 которые там еще есть. Вложение 4185
В блокноте стоит ANSI сейчас. Если делаю "преобразовать в UTF-8 без BOM", то иероглифы получаются...
Подскажите пожалуйста какую конкретно кодировку поставить в phpMyAdmin и какую конкретно в Notepad++, чтоб все работало))
22.09.2012, 11:47
Кирилл013
Разобрался)) В phpMyAdmin поставил utf8_general_ci, в блокноте UTF-8. Спасибо большое всем))
22.09.2012, 18:21
Muxa
Кирилл013, копируете весь код, выбираете преобразовать в UTF-8 Without BOM, если иероглифы - вставляете из буфера и все. Не советую использовать с BOM-метками, если будете отправлять заголовки на php, то непременно напоретесь на них
23.09.2012, 14:42
Licoric
Цитата:
Сообщение от Muxa
Кирилл013, копируете весь код, выбираете преобразовать в UTF-8 Without BOM, если иероглифы - вставляете из буфера и все. Не советую использовать с BOM-метками, если будете отправлять заголовки на php, то непременно напоретесь на них
Только хотел дать этот совет, как уже меня опередили. В блокноте есть еще некоторые глюки, когда, например, создаешь новый файл на фтп и ставишь сначала кодировку утф без бом, потом пишешь код, сохраняешь. Открываешь - а там опять анси.
ps даже если там после конверта иероглифы, то можно не париться - сохранять и все. При новом открытии этого файла у меня, обычно, весь текст остается оригинальным (кривульки становятся адекватными буквами).
24.09.2012, 20:40
Кирилл013
Цитата:
Сообщение от Muxa
Кирилл013, копируете весь код, выбираете преобразовать в UTF-8 Without BOM, если иероглифы - вставляете из буфера и все. Не советую использовать с BOM-метками, если будете отправлять заголовки на php, то непременно напоретесь на них
Тут такая проблема, нажимаю "преобразовать в UTF-8 без BOM", иероглифы не в блокноте появляются, а на страничке сайта. Просто в UTF-8 все прекрасно. И еще вопрос: чем отличается "преобразовать" от "кодировать" в notepad++??
25.09.2012, 18:52
Muxa
а заголовки нужные отправляете? что кодировка utf-8 а не windows-1251?
Цитата:
Сообщение от Кирилл013
чем отличается "преобразовать" от "кодировать" в notepad++??
именно тем и отличается. что при преобразовании он именно преобразовывает в эту кодировку, т.е. полностью байты переводит в другую кодировку. а при выборе "кодировать" - он только внешне их преобразовывает. Вообще, при нажатии кодировать, должны появиться "квадратики" вместо русских букв. Как то так (может и ошибаюсь в чем то)
30.09.2012, 22:03
Кирилл013
Проблема возобновилась)) Все хорошо работало в кодировке UTF-8, но я стал работать с заголовками, и теперь приходит ошибка "already sent by..." чёто такое. Заголовки отправляю до вывода чего-либо на экран. Если я правильно понимаю, это те 3 символа, которые зашифрованы. Пытаюсь преобразовать в UTF-8 без BOM, в браузере каша...
Цитата:
Сообщение от Muxa
а заголовки нужные отправляете? что кодировка utf-8 а не windows-1251?
Нет, ничего не отправляю. Через html отправлять или через php?
01.10.2012, 02:27
Arks
"already sent by..."
Вам необходимо освоить основы php такие как буферизация вывода.
Ошибка говорит о том что запросчик(браузер) получил в ответ какой-то мутный заголовок или мутный ответ после заголовка.
Обычно это бываеет при испоьзовании сессий которые устанавливаются как cookie файлы после передачи соответствующих заголовков.
Скачайте ФФ, к нему плагин фаербаг, откройте вкладку сеть - посмотрите на пункты запрос/ответ - так вы легко поймете что такое заголовки и чем они отличаются от тела сообщения.
В соответствии со сандартоам заголовки должны идти перед телом. в php для управления заголовками предусмотрен метод http://docs.php.net/manual/en/function.header.php
01.10.2012, 06:57
Arks
Вообще буферизировать вывод можно по-разному, например вот так: