Восточное Полушарие
Китайский форум => Китайский язык: письменность, изучение, диалекты, вэньянь => Китайский Язык: компьютеры, программы, шрифты => Тема начата: 3meu от 04 Сентября 2006 18:50:47
-
Приветвтвую!
Хочу сделать так, чтобы на экран выводился китайский текст из базы данных (веб-страница).
Создал базу данных, коннекчусь к ней нормально, но ничего не выводится.
SELECT * FROM <DB_NAME> WHERE word='<CHINESE_WORD>';
и дальше идет обработка полученных данных, форматирование и вывод.
Само слово <CHINESE_WORD> в базе данных есть, база данных в юникоде, страница в юникоде, но запись эту не находит. :-\
Если вместо иероглифов в БД ввести латиницу, то все работает...
Подскажите, пожалуйста, что и где надо изменить, чтобы все заработало? ???
-
Не думаю, что скажу вам что-то новое. Вероятны минимум два сценария:
1) Что-то с настройками базы данных, в частности настройка поддержки UTF-8, или какая там у вас кодировка для юникода. Насколько мне известно, например, в MySQL используется UTF-8. Про другие не знаю, где как.
2) Несоответствие кодировки в SQL запросе кодировке базы данных.
Попробуйте тоже самое с русским текстом, а не только с латиницей. А также вывод на экран запроса в каком-нибудь клиенте, например
select * from <db_name> limit 3;
или что-то в этом роде
Надо экспериментировать...
-
1) Что-то с настройками базы данных, в частности настройка поддержки UTF-8, или какая там у вас кодировка для юникода. Насколько мне известно, например, в MySQL используется UTF-8. Про другие не знаю, где как.
Я использую MySQL, но там много вариантов юникода, в том числе utf8_unicode_ci и utf8_bin. Какой из них самый UTF-8? ;D
2) Несоответствие кодировки в SQL запросе кодировке базы данных.
А как явно указать кодировку в запросе?
А также вывод на экран запроса в каком-нибудь клиенте, например
select * from <db_name> limit 3;
limit 3 - это как? ::)
Заранее прошу прощения за мочи "чайниковские" вопросы
-
В phpMyAdmin по зарпосам все ищется.
Я РНР-код пишу в теле новости CMS Drupal, он ругается на ошибки во внутренних файлах.
Что-то про eval()'d code.
Надо будет посмотреть, что там...
-
Я не знаю, какой из них самый самый юникодный. Я вообще-то тоже не гуру в MySQL. По-идее все разновидности utf8 всего лишь для сортировки и сравнения символов (collation). Само внутреннее представление в базе данных не поменяется. Так что это не важно.
LIMIT 3 - ограничивает в MySQL число выводимых строк до 3.
Посмотрите вот здесь http://dev.mysql.com/doc/refman/5.1/en/charset-unicode.html, в комментариях там примеры есть и может быть ваша проблема.
Там говорится, что стоит первым делом в запросе написать SET NAMES 'utf8'
А я имел в виду, что вы могли вводить сам запрос в неправильной кодировке, если вам слово для поиска кто-то представляет.
-
Огромное спасибо!!! ;D
SET NAMES 'utf8';
Очень помогло! 8)