![]() |
Проблема с кодировкой
Ситуация такая - сервер на Fedora, дефолтовая кодировка utf, скрипты написаны в нем, т.е. с кодировкой utf, в скриптах идет обращение к базе и выборка из нее элементов, причем кодировка базы либо Windows-1251, либо koi8-r (базы на разных серваках), в итоге хтмл страничка не отображает правильно данные, вытащенные из базы, кодировка страницы соответственно utf. Пытался делать SET CLIENT_ENCODING TO UTF8 в базе (да, кстати, база Postgres), но это не помогает, но если ,например, база на windows-1251, а я делаю SET CLIENT_ENCODING TO KOI8-R, а потом в скрипте $element = iconv('KOI8-R', 'UTF-8', $element), то все отображается нормально :idontnow: Помогите решить проблему (писать везде iconv - не решение, слишком много того, где что-то выводится:) )
Спасибо. :yees: |
set character_set_results=utf8 в mysql. В постгресе попробуй set names utf8
|
Цитата:
Хм, или это к базе Mysql? Проверил на постгресе - не подходит...:( |
А что говорит pg_client_encoding() до и после SET CLIENT_ENCODING TO UTF8?
|
Цитата:
А "после" говорит UNICODE... :idontnow: Причем кодировку базы оно все-таки меняет....на какую-то, тока вот при выводе на экран явно не utf:) думаю, может эта проблема в пхп? Я записываю данные из базы в переменную... utf же 2 байта требует на символ, может там как-нибудь нужно по специальному переменные создавать :idontnow: |
Цитата:
|
вот вместо:
Иван Николаевич Панов Выводит: йЧБО оЙЛПМБЕЧЙЮ рБОПЧ Если не делаю Set CLIENT...... то выводит: ���� ���������� ����� |
Цитата:
|
Цитата:
п╧п╖п▒п· п╬п≥п⌡п÷п°п▒п∙п╖п≥п╝ я─п▒п·п÷п╖ (это если делаю SET CLIENT_ENCODING TO UTF8) А вот если не делаю, то пишет как и положено: Иван Николаевич Панов (при кодировке в браузере koi8) :idontnow: |
Цитата:
|
Фух, разобрался...:) оказалось, что кодировка самой базы была win, а записи в этой базе хранились в кодировке koi8, от этого получалось, что действительно делалось WIN->UTF8, и записи преобразовывались в утф, тока сами они были в кои8, короче запутано все было - в итоге перекодировал всю таблицу, теперь там в нормальной виндовой кодировке и кодировка таблицы тоже виндовая:) Очень помог, RaZEr ;)
|
Хм, опять почти такая же проблемка - нужно сделать запрос к базе, а в запросе есть русские буквы (SELECT * FROM table WHERE city='Санкт-Петербург'), соответственно запрос пишу в шелле (пользуюсь putty), в скрипте ($sql = "SELECT * FROM table WHERE city='Санкт-Петербург'"), затем выполняю его, но результата никакого... если запрос вывести на страницу (сам текст), скопировать, потом выполнить его в самой базе, то все выполняется, думаю проблема опять в кодировке - ведь в скрипте получается utf8, а база теперь на SQL_ASCII :) всякие команды базе типа "SET CLIENT_ENCODING TO UTF8" не помогает... перевод $sql в виндовскую кодировку тоже не помогает.... даже не знаю что делать :idontnow: Подскажите, как решить проблему...:)
|
А если из шелла прямо запрос в UTF8 ввести? С помощью iconv например, если локаль не юникодная.
|
Цитата:
даже не знаю что и делать :idontnow: |
Цитата:
|
Цитата:
По умолчанию-то она юникодная, в Федоре начиная с 4 версии, да только никто же не мешает сменить, как локально, так и для конкретного соединения выбрать! |
Цитата:
Цитата:
Цитата:
|
Ну приведи тогда вообще что БД говорит на
show VARIABLES; |
Цитата:
Цитата:
|
Подскажите, как поменять дефолтовую кодировку для MySQL Server 5.0 по винду? Дома просто поставил. Сейчас стоит шведская, а хочется cp1251. Поигрался с настройками, что перестало к мускулу конектиться. Где надо менять?
|
Цитата:
|
Razer
у меня в корне папке лежит my.ini, ты его имел ввиду? А как прописать нужную кодировку cp-1251, windows-1251 и тд? Я там и менял, наверно не так как-то записывал. А то точно не надо запускать exe-шники из папки bin с каким-нибудь параметром? |
Код:
Обычно для редактирования файла опций my.ini можно использовать инструмент WinMySQLAdmin. В этом случае остальную часть данного раздела вы можете пропустить. Хотя PHPMyAdmin на стартовой странице пищет, что UTF-8 Unicode (utf8), таблицы отображаются нормально. |
Кодировки бывают разные. Клиента, соединения, результата, сервера, базы, таблицы, поля. Менять кодировку сервера целесообразно лишь перед созданием баз и таблиц. Если же данные загружены (и загружены правильно) то менять нужно кодировки клиента (character_set_client, *connection и *results).
|
| Часовой пояс GMT +4, время: 18:55. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.