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

Posted

技术标签:

【中文标题】在字符串中编码斯堪的纳维亚字母的有效方法【英文标题】:Efficient way to encode scandinavian letters in a string 【发布时间】:2011-08-28 02:42:30 【问题描述】:

我的 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?? 
  


【问题讨论】:

【参考方案1】:

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

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

【讨论】:

不,服务器回复我JSON数据,我需要解析数据并获取字符串,并显示在浏览器上。 HTML、javascript 和浏览器都支持 UTF-8。我没有看到问题。【参考方案2】:

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

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

无法从随机字节字符串中判断它是一种编码还是另一种编码(一般来说无论如何)。所以你必须在你的 Javascript 中知道服务器发送的是什么编码。

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

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

UTF-8 一路走来就省心了。

【讨论】:

以上是关于在字符串中编码斯堪的纳维亚字母的有效方法的主要内容,如果未能解决你的问题,请参考以下文章

Python3 基础语法

python3基础语法

Python 基础语法

Python3 基础语法:编码标识符python保留字注释多行语句等介绍

带有乱码 UTF-8 字符的 Android WebView。

mysql 中的斯堪的纳维亚字符未正确显示