Эффективный способ кодировать скандинавские буквы в строку - PullRequest
1 голос
/ 18 мая 2011

Мой javaScript получает строковое значение с сервера:

var name = VALUE_FROM_SERVER;

это name будет отображаться на веб-странице, поскольку name содержит скандинавскую букву (например, имя может быть TÖyoeävä ) Мне нужно как-то кодировать его, чтобы правильно отобразить в браузере .

В javaScript, какой самый эффективный способ кодировать все эти скандинавские буквы?

( Я предпочитаю делать это с Javascript. )

(например, я хотел бы создать функцию JS, которая принимает TÖyoeävä в качестве параметра и возвращает T & Ouml; yoe & auml; v & auml;)

var encoder=function(string){
  for(var s=0; s<string.length; s++){
        //Check each letter in the string, if it is Scandinavian, encode it?? 
  }

} * * тысяча двадцать-один

Ответы [ 2 ]

2 голосов
/ 18 мая 2011

Я бы посоветовал вам не кодировать в JS. Просто убедитесь, что кодировка вашей (html) страницы соответствует тому, что возвращает ваш сервер.

Предпочтительно, это будет кодировка UTF-8 (для поддержки других языков в будущем). Но если вас интересуют только скандинавские языки, то достаточно ISO-8859-1 (Latin 1).

Невозможно определить по случайной байтовой строке, является ли она той или иной кодировкой (вообще говоря, в любом случае). Таким образом, вы должны знать в своем Javascript, какую кодировку отправляет сервер.

Вы также должны установить кодировку своей страницы в какой-то момент, и этот момент должен быть до того, как браузер начнет интерпретировать его содержимое.

В общем, получение кодировки A с сервера и преобразование в кодировку B на стороне клиента будет непростым делом и в значительной степени пустой тратой времени (IMO). Вы не получаете никакой гибкости, которую я вижу, за исключением того, что вы позволяете вашему серверу изменять кодировки, что не кажется такой хорошей идеей.

UTF-8 полностью избавит вас от головной боли.

0 голосов
/ 18 мая 2011

Просто используйте кодировку UTF-8 при отправке ответа с сервера. Например

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
...