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

问题描述 投票:1回答:2

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

var name = VALUE_FROM_SERVER;

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

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

[我更喜欢用Javascript。

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

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

}
javascript jquery-ui javascript-framework
2个回答
2
投票

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

最好是UTF-8编码(以便将来能够支持其他语言)。但是,如果您只是对斯堪的纳维亚语言感兴趣,那么ISO-8859-1(拉丁语1)就足够了。

无法从随机字节字符串中分辨出它是一种编码还是另一种编码(通常无论如何都要说)。因此,您必须在Javascript中知道服务器正在发送的编码。

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

因此,从服务器获取编码A并将其转换为客户端上的编码B将非常棘手,并且非常浪费时间(IMO)。除了让您的服务器更改编码(这似乎不是一个好主意)之外,您没有得到我所能看到的任何灵活性。

UTF-8始终可以避免头痛。


0
投票

仅在从服务器发送响应时使用UTF-8字符集。例如

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
© www.soinside.com 2019 - 2024. All rights reserved.