我的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??
}
}
我建议您不要在JS中编码。只要确保您的(html)页面编码与服务器返回的内容匹配即可。
最好是UTF-8编码(以便将来能够支持其他语言)。但是,如果您只是对斯堪的纳维亚语言感兴趣,那么ISO-8859-1(拉丁语1)就足够了。
无法从随机字节字符串中分辨出它是一种编码还是另一种编码(通常无论如何都要说)。因此,您必须在Javascript中知道服务器正在发送的编码。
您还必须在某个位置设置页面的编码,并且该位置必须在浏览器开始解释其内容之前。
因此,从服务器获取编码A并将其转换为客户端上的编码B将非常棘手,并且非常浪费时间(IMO)。除了让您的服务器更改编码(这似乎不是一个好主意)之外,您没有得到我所能看到的任何灵活性。
UTF-8始终可以避免头痛。
仅在从服务器发送响应时使用UTF-8字符集。例如
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">