|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.01.2010, 05:37 | #1 |
Пользователь
Регистрация: 04.02.2008
Сообщений: 19
|
Нарушилась кодировка в БД MySQL > регистрозависимость поиска по русским символам
есть БД:
запрос show variable; показывает: Код:
*********************************** ** ПЕРВЫЙ ВАРИАНТ: когда выполняю запрос в php (сам php файл в UTF-8): mysql_query("INSERT INTO `database`.`table` (`text`) VALUES ('Привет');"); в БД записывается это: привет < смотрю через phpMyAdmin. на странице (сам файл страницы в UTF-8 так же установлен content="text/html; charset=utf-8") вывожу это, вижу нормальный русский текст, тобишь "Привет". ВТОРОЙ ВАРИАНТ: делаю "насильно" после соединения с БД: mysql_query("SET names 'utf8' COLLATE 'utf8_general_ci'"); и выполняю тот же выше приведенный запрос: mysql_query("INSERT INTO `database`.`table` (`text`) VALUES ('Привет');"); в БД записывается слово "Привет" < смотрю через phpMyAdmin. вывожу это на страницу, вижу нормальный русский текст... в то время как то что я записывал ранее выводится уже как привет *********************************** ** объясните мне пожалуйста почему так происходит при ПЕРВОМ ВАРИАНТЕ? как перекодировать БД если туда всё записано по ПЕРВОМУ ВАРИАНТУ - вернее, объясните сам алгоритм, что на что кодировать? есть альтернатива перекодированию? PS. модуль php: iconv - есть; php-mbstring - нету, возможности установить - нету; - для чего это? ответ: по первому варианту в БД с установленной utf8_general_ci поиск русских символов регистроЗАВИСИМ, когда по ВТОРОМУ ВАРИАНТУ поиск регистроНЕзависим. огромное спасибо за ранее! |
08.01.2010, 00:24 | #2 |
Пользователь
Регистрация: 04.02.2008
Сообщений: 19
|
идея: рас браузер по ПЕРВОМУ ВАРИАНТУ всё отображается нормально, то наверно есть и способ всё оттуда вытащить в таком виде который мы наблюдаем на странице (ПЕРВЫЙ ВАРИАНТ), а затем уже нормально перелапатить БД в UTF-8 - т.к. русские символы UTF-8 в среде cp1251 будут отображаться как символы + русские буквы, сейчас же мы видим символы + латинские буквы - это на лицо неверная кодировка, как вот её вернуть в нормальное состояние не понятно.
понятно что точно не так: *символы + латинские буквы (utf8) > конвертирование > символы + русские буквы (utf8)* тут наверно скорее как я писал вышет так будет: *символы + латинские буквы (utf8) > конвертирование > cp1251* -- но вот КАК?! |
13.01.2010, 11:33 | #3 |
Пользователь
Регистрация: 04.02.2008
Сообщений: 19
|
проблема решена!
оказывается по умолчанию кодировка соединения и т.д.и т.п. была: Код:
latin1, и соединение в latin1. короче, всё экспортировал так: ssh:~ # mysqldump --default-character-set=latin1 -u root -p -h localhost -B database | sed 's/latin1/utf8/' > /home/ssh/dump.sql теперь русский текст отображаться нормально, далее залил в бд этот бекап и вуууоля |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск строк по символам в Memo | Nocturnal | Помощь студентам | 2 | 15.12.2009 17:33 |
База данных MySQL и кодировка! | nikolai_P | SQL, базы данных | 3 | 17.11.2009 22:50 |
Кодировка в MySQL и Delphi | Droid | БД в Delphi | 2 | 18.06.2009 00:08 |
Проблема с русским | ponchikpk | Паскаль, Turbo Pascal, PascalABC.NET | 12 | 22.05.2009 18:39 |
Как в RichEdit обращаться к символам | Lissisa | Компоненты Delphi | 2 | 19.02.2009 08:01 |