|
|
|
| пишу поиск по буквам. есть такой запрос
SELECT * FROM sectdata WHERE DataDesc like 'A%'
ну тут делаю запрос ко всем строкам где DataDesc начинается на "А"
проблема состоит в том что этот запрос работает только с ангийскими буквами, если пишу русскую букву то ни чего не выводит.
почему так? и что же делать? | |
|
|
|
|
|
|
|
для: inga
(14.07.2006 в 10:45)
| | MySQL как версии? | |
|
|
|
|
|
|
|
для: cheops
(14.07.2006 в 10:58)
| | 4.1.14 | |
|
|
|
|
|
|
|
для: inga
(14.07.2006 в 11:06)
| | В какой кодирове хранятся данные в таблице и какая кодировка выставлена по умолчанию для самой таблицы? | |
|
|
|
|
|
|
|
для: cheops
(14.07.2006 в 11:08)
| | Кодировка стандартная UTF | |
|
|
|
|
|
|
|
для: inga
(14.07.2006 в 11:13)
| | А как Вы пишите русскую букву в кодировке UTF?
Или у Вас весь скрипт в UTF-редакторе набран? | |
|
|
|
|
|
|
|
для: Trianon
(14.07.2006 в 11:44)
| | просто пишу в фаре русской раскладкой | |
|
|
|
|
|
|
|
для: inga
(14.07.2006 в 12:02)
| | Тогда наверное код скрипта у Вас в Windows-1251.
И настраивать кодировки нужно как-то так:
mysql_query ("set character_set_server='utf-8'"); // сервер держит базу в UTF-8
mysql_query ("set character_set_client='cp1251'"); // клиент отправляет запросы в cp1251
mysql_query ("set character_set_results='cp1251'"); // клиент принимает данные в cp1251
|
| |
|
|
|
|
|
|
|
для: Trianon
(14.07.2006 в 12:27)
| | не помогает. блин! и что же делать? | |
|
|
|
|
|
|
|
для: inga
(14.07.2006 в 12:38)
| | А остальные операции с русским текстом БД выполняются нормально? | |
|
|
|
|
|
|
|
для: Trianon
(14.07.2006 в 13:01)
| | ну явно пишу рускую букву только здесь, пробывала и слово писать.
русские не находит | |
|
|
|
|
|
|
|
для: inga
(14.07.2006 в 13:11)
| | А добавление строк с русскими буквами, и вывод их нормально выполняются? | |
|
|
|
|
|
|
|
для: Trianon
(14.07.2006 в 13:18)
| | Та же проблема - поисал на форуме.
Помогло!
Спасибо. | |
|
|
|
|
|
|
|
для: Trianon
(14.07.2006 в 13:18)
| | да | |
|
|
|
|
|
|
|
для: inga
(14.07.2006 в 13:56)
| | тогда это, видимо, следствие того, что данные у Вас хранятся не в той кодировке, которая заявлена. | |
|
|
|
|
|
|
|
для: Trianon
(14.07.2006 в 14:20)
| | да блин! вроде те же кодировки.
так что делать? так и не решили этот вопрос | |
|
|
|
|
|
|
|
для: inga
(14.07.2006 в 15:40)
| | В какой кодировке у Вас выводится html-страница c данными из таблицы?
И html-страница, создающая форму с полями ввода? | |
|
|
|
|
|
|
|
для: Trianon
(14.07.2006 в 15:43)
| | везде CP1251
и в таблице и на странице | |
|
|
|
|
|
|
|
для: inga
(14.07.2006 в 15:46)
| | Занчит, если данные из одной кодировки в другую Вы явным образом не преобразуете, то в таблице MySQL они тоже лежат в кодировке cp1251. А меж тем, Вы утверждаете, что кодировка СУБД - UTF-8. Значит не "те же кодировки", а разные.
Что делать - приводить в соответствие одно другому.
Например так, в общих чертах:
Снять дамп, в котором данные бы соответствовали внешнему виду. Убедиться что он целый, т.е. без повреждений.
Создать БД с правильными настройками кодировки.
Залить дамп в созданную БД.
Изменить скрипты подключения к БД так, чтобы они учитывали установленные настройки.
Проверить всё ли ок.
И только после этого уничтожать старую БД. | |
|
|
|
|
|
|
|
для: Trianon
(14.07.2006 в 15:51)
| | и что же мне делать?????? | |
|
|
|
|
|
|
|
для: inga
(14.07.2006 в 15:54)
| | Попробуйте функциями изменения кодировки.
<?php
$text = "Русское слово/буква";
$text = iconv("cp1251", "UTF-8", $text);
mysql_query("SELECT * FROM sectdata WHERE DataDesc like '$text%'")
?>
|
Ну или какось так | |
|
|
|