Как правильно отображать все неанглийские символы на веб-сайте?

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

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

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

1 ответ

Решение

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

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

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

Другие вопросы по тегам