Я создал приложение rails, в котором я отображаю имя любого типа, имя может быть любым: человек, автомобили, овощи, любой материал.

Поэтому я подумал о том, чтобы включить какое-нибудь название ингредиента, например, Crème Fraîche, всякий раз, когда я копирую это название с другой веб-страницы и сохраняю в своей базе данных, оно правильно сохраняется.

При отображении этого имени на веб-странице я вижу странные символы, например, Crème Frache.

Я использовал кодировку UTF-8, тогда также отображается такое имя.

Я проверил, что имя моей базы данных хранится правильно, но на странице и в irb оно отображается так.

Я потратил почти 5 дней на поиск вышеуказанной проблемы, но безуспешно. надеюсь на этот раз мне помогут

Заранее спасибо Панкадж

1
Pankaj 15 Апр 2011 в 12:44

1 ответ

  1. включите следующий метатег в раздел вашей страницы

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
    

    Это говорит браузерам использовать кодировку ISO для интерпретации текста на странице.

  2. Даже при правильной кодировке на веб-странице символы по-прежнему будут отображаться поврежденными на компьютере, где не установлены требуемые шрифты, и, очевидно, вы не можете быть уверены, какие шрифты установлены на компьютерах, просматривающих вашу страницу.

  3. Браузеры также могут нуждаться в настройке. Например, Firefox нужно указать в разделе «Параметры/Инструменты/Содержимое», чтобы он использовал указанный выше набор символов по умолчанию.

  4. Чтобы быть абсолютно уверенным, что ваши символы будут отображаться правильно, используйте однозначный HTML-код для каждого нестандартного символа, например. вместо Crème используйте Crè me (Обратите внимание, что между «&» и «;» не должно быть пробелов — мне пришлось ввести его таким образом, чтобы эта страница не интерпретировала код и не отображала è).

    Это может иметь последствия для веб-поиска и функций заказа в вашей базе данных. Вы можете сохранить текст как Crème в своей базе данных и передать все через функцию преобразования перед доставкой на HTML-страницу (это, очевидно, приведет к небольшой задержке при загрузке страницы). Вы также можете рассмотреть возможность использования двух версий ваших данных: версии необработанных данных и версии для отображения. Затем вы можете передать новые данные через функцию преобразования, сохранить преобразованную версию и записать преобразованные данные на HTML-страницу.

4
Tim Cooper 16 Дек 2011 в 01:37