Opera и Safari не отображают латинские символы - PullRequest
0 голосов
/ 16 ноября 2011

У меня проблемы с отображением латинских символов 1, таких как «ç», «ã» или «À» в последних версиях Safari и Opera.Я получаю данные (JSON) из бэкэнда RoR, используя Ajax и JQuery (кодировка Latin1), а сама веб-страница опирается на Latin1, благодаря:

<?php header('Content-Type: text/html; charset=ISO-8859-1');?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:og="http://ogp.me/ns#"
      xmlns:fb="http://www.facebook.com/2008/fbml"
      lang="pt">
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/>

Пользовательская библиотека Javascript, которую я сделал, также специально указывает ISO-8859-1, когда я выполняю включение через десять строк:

    <script type="text/javascript" src="js/lib.js" charset="ISO-8859-1"></script>

Тем не менее, оба браузера не отображают символы впоследствии.Safari показывает печально известный черный бриллиант, в то время как Opera просто показывает пустое пространство.

Есть идеи?Заранее спасибо

1 Ответ

1 голос
/ 21 ноября 2011

Скорее всего, неправильный набор символов, отправленный в вашем типе контента: HTTP-заголовок для данных JSON .В своем посте вы показываете заголовки и теги META для самой страницы и включенного сценария, но если данные JSON отправляются отдельно, они будут помечены отдельно.Было бы полезно получить ссылку на страницу с этой проблемой, но если вы не хотите публиковать ее, вы можете использовать инструмент, такой как HTTP-отладчик Microsoft Fiddler, для проверки заголовков, которые отправляются туда и обратно между браузером иВеб-сайт.Если веб-сервер отправляет

  Content-type: text/html;charset=UTF-8

для файла с содержимым «латиница» (iso-8859-1) или наоборот, это ваша проблема.Исправьте HTTP-заголовок, и все будет в порядке.

...