Как правильно отображать все неанглийские символы на веб-сайте? - PullRequest
7 голосов
/ 19 апреля 2011

Досадно видеть, что даже самые профессиональные сайты делают это неправильно. Размещенный текст превращается во что-то непонятное. У меня мало информации о кодировках. Я просто хочу знать о проблеме, которая так усложняет такую ​​основную вещь.

  • Ограничивает ли HTTP-кодировку некоторые ограничения? символы?
  • Нужно ли пользователям отправлять информацию о кодировка / кодировка, которую они используют?
  • Предполагая, что все приходит к сервер как есть, используется кодировка сохранить этот текст, вызвавший проблему?
  • Это что-то о браузере Реализации?
  • Нужны ли нам некоторые хитрости JavaScript для заставить это работать?

Есть ли абсолютное решение для этого? У него могут быть свои ограничения, но StackOverflow, кажется, заставляет его работать.

1 Ответ

8 голосов
/ 20 апреля 2011

Я подозреваю, что нужно убедиться, что весь стек обрабатывает кодировку с осторожностью:

  • Укажите шрифт веб-страницы (CSS), который поддерживает широкий диапазон международных символов.
  • Укажите правильные атрибуты HTML-тега lang / charset и убедитесь, что браузер использует правильную кодировку.
  • Убедитесь, что HTTP-запросы отправляются с соответствующей кодировкой, указанной в заголовках.
  • Убедитесь, что содержимое HTTP-запросов правильно декодировано в вашем обработчике веб-запросов
  • Настройте базу данных / хранилище данных с использованием интернационализации кодирования / сортировки (например, UTF-9 / UTF-16), а не одногоэто просто поддерживает символы латинского алфавита (по умолчанию в некоторых БД).

Первые несколько обычно обрабатываются браузером и веб-фреймворком, но если вы испортите кодировку БД или используете шрифт с ограниченным набором символов, вас некому будет вас спасать.

...