在字符串中编码斯堪的纳维亚字母的有效方法

时间:2011-05-18 14:07:55

标签: jquery-ui javascript-events javascript javascript-framework

我的javaScript从服务器获取字符串值:

var name = VALUE_FROM_SERVER;

name将显示在网页上,因为name包含斯堪的纳维亚字母(例如,名称可能是TÖyoeävä)我需要以某种方式对其进行编码以显示它在浏览器上正确。

在javaScript中,对所有斯堪的纳维亚字母进行编码的最有效方法是什么?

我更喜欢使用Javascript。

(例如,我想创建一个JS函数,它将TÖyoeävä作为参数并返回TÖyoeävä)

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 个答案:

答案 0 :(得分:2)

我建议你不要在JS中编码。只需确保您的(html)页面编码与您的服务器返回的内容相匹配。

优选地,这将是UTF-8编码(以便能够支持其他语言)。但如果它只是您感兴趣的斯堪的纳维亚语言,ISO-8859-1(拉丁语1)就足够了。

如果它是一个编码或另一个编码,则无法从随机字节串中判断出来(通常无论如何)。所以你必须在你的Javascript中知道服务器正在发送什么编码。

您还必须在某个时刻设置页面的编码,并且该点必须在浏览器开始解释其内容之前。

总而言之,从服务器获取编码A并在客户端转换为编码B将变得棘手,而且几乎浪费时间(IMO)。你没有获得我能看到的任何灵活性,除了允许你的服务器改变编码,这似乎不是一个好主意。

UTF-8一直都会让您头疼。

答案 1 :(得分:0)

从服务器发送响应时,只需使用UTF-8字符集即可。例如

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