Кавычки превращаются в вопросительные знаки - PullRequest
0 голосов
/ 17 апреля 2009

Итак, у меня есть скрипт ruby ​​, который анализирует HTML-страницы и сохраняет извлеченную строку в БД ... но я получаю утомленные символы (обычно знаки вопроса) вместо простого текста ...

Например: «НЕКОТОРЫЙ ТЕКСТ» вместо «Некоторый текст»

Я пробовал HTML-сущности и CGI :: unescape ... но безрезультатно ... сделал поиск в Google, установив $ KCODE = 'u' и потребовав 'jcode' все еще не работает ...

любые предложения / указатели будут великолепны

Спасибо

PS: использование mysql 5.1

Ответы [ 2 ]

4 голосов
/ 17 апреля 2009

Ваш сценарий хранит escape-последовательности Unicode для кавычек (вместо кавычек ASCII) в базе данных.

Это действительно хорошо - это показывает, что сама БД работает нормально, хотя для достижения наилучших результатов вы должны убедиться, что таблица настроена на использование utf8_collation_ci, чтобы сортировка строк работала правильно.

Тот факт, что выходные данные отображаются как "â €", просто означает, что код вашего терминала (и / или веб-страницы) output неправильный.

Если это выход терминала, убедитесь, что для $ENV{'LANG'} задана соответствующая кодировка UTF8 (например, en.UTF-8), и что сам эмулятор терминала установлен таким же образом.

Если это вывод HTML, убедитесь, что кодировка страницы также установлена ​​на UTF-8, т. Е .:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
2 голосов
/ 17 апреля 2009

Может ли БД, в которой вы храните данные, обрабатывать Unicode? Эти симптомы, кажется, подразумевают, что это не так. Для поддержки Unicode в MySQL, смотрите эту ссылку .

Представляется вероятным, что указанные кавычки не являются стандартными кавычками ASCII, а Unicode .

Ruby имеет реализацию iconv для преобразования между типами кодирования. См. здесь для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...