Javascript 许多国际语言使用哪种编码

Javascript 许多国际语言使用哪种编码,javascript,html,xml,encoding,Javascript,Html,Xml,Encoding,我正在建立一个小网站,并希望使其国际化。所有内容将以不同语言存储在外部xml中,并通过javascript解析为html 现在的问题是,还有德语、俄语、汉语和日语符号,还有从右向左的语言,如阿拉伯语和波斯语 最好的方法/解决方案是什么?是否有可以正确显示所有语言的国际编码?或者你有没有其他的解决方案 提前谢谢 多语言网站的正常推荐解决方案是使用UTF-8。可以处理已分配Unicode码点的任何字符,但需要注意以下几点: Unicode是一个版本标准,不同的Javascript实现可能支持不同的U

我正在建立一个小网站,并希望使其国际化。所有内容将以不同语言存储在外部xml中,并通过javascript解析为html

现在的问题是,还有德语、俄语、汉语和日语符号,还有从右向左的语言,如阿拉伯语和波斯语

最好的方法/解决方案是什么?是否有可以正确显示所有语言的国际编码?或者你有没有其他的解决方案


提前谢谢

多语言网站的正常推荐解决方案是使用UTF-8。可以处理已分配Unicode码点的任何字符,但需要注意以下几点:

Unicode是一个版本标准,不同的Javascript实现可能支持不同的Unicode版本

如果文本包含Unicode基本多语言平面BMP之外的字符,则需要以Unicode感知的方式在Javascript中进行文本处理。例如,如果使用Javascript字符串类,则在执行文本操作时需要适当考虑代理项对


Javascript字符串实际上编码为UTF-16。它有一些方法允许您将其作为Unicode代码点进行操作,子字符串和长度等方法/属性使用codeunit而不是代码点索引。如果不小心,最终可能会在代理项对的低位和高位之间拆分字符串。结果将是无法正确显示的内容。这只会影响更高平面中的代码点。。。但这包括新的表情符号代码点。

多语言网站的正常推荐解决方案是使用UTF-8。可以处理已分配Unicode码点的任何字符,但需要注意以下几点:

Unicode是一个版本标准,不同的Javascript实现可能支持不同的Unicode版本

如果文本包含Unicode基本多语言平面BMP之外的字符,则需要以Unicode感知的方式在Javascript中进行文本处理。例如,如果使用Javascript字符串类,则在执行文本操作时需要适当考虑代理项对


Javascript字符串实际上编码为UTF-16。它有一些方法允许您将其作为Unicode代码点进行操作,子字符串和长度等方法/属性使用codeunit而不是代码点索引。如果不小心,最终可能会在代理项对的低位和高位之间拆分字符串。结果将是无法正确显示的内容。这只会影响更高平面中的代码点。。。但这包括新的表情符号代码点。

所有的Unicode转换UTF-8、UTF-16、UTF-32都可以对所有Unicode字符进行编码。您可以根据大小选择要使用的字符:如果大多数文本是西文脚本,可能是UTF-8,因为大多数字符只使用一个字节,但如果需要,可以使用2、3或4。如果您正在编码远东脚本,您可能需要其他转换之一

这里最基本的一点是它都是Unicode;转换只是表示相同字符的不同方式

Stack Overflow的联合创始人在这方面发表了一篇很好的文章:


不管您对文档使用什么编码,请注意,如果您在JavaScript中处理这些字符串,则允许使用无效值。即使文档是UTF-8或UTF-32格式。这意味着,举例来说,这些表情符号中的每一个在JavaScript中看起来都像两个字符,因为它们用UTF-16的两个单词来表示。与所有Unicode转换一样,UTF-8、UTF-16、UTF-32可以对所有Unicode字符进行编码。您可以根据大小选择要使用的字符:如果大多数文本是西文脚本,可能是UTF-8,因为大多数字符只使用一个字节,但如果需要,可以使用2、3或4。如果您正在编码远东脚本,您可能需要其他转换之一

这里最基本的一点是它都是Unicode;转换只是表示相同字符的不同方式

Stack Overflow的联合创始人在这方面发表了一篇很好的文章:


不管您对文档使用什么编码,请注意,如果您在JavaScript中处理这些字符串,则允许使用无效值。即使文档是UTF-8或UTF-32格式。这意味着,举例来说,这些表情符号中的每一个在JavaScript中看起来都像两个字符,因为它们用UTF-16的两个单词来表示。就像我认为XML是错误的方法一样——在我看来,PHP gettext扩展名.mo/.po是正确的方法。它是为多语言网站,翻译
离子目录等。谢谢您的回复!是的,我也首先想到了PHP。。。[虽然我对gettext扩展名.mo/.po不太熟悉]……就我记忆所及,当使用PHP和更改语言时,站点会再次加载新的语言文本,对吗?!?但是对于我的项目,我希望在不重新加载的情况下立即进行翻译。因此,当你点击一个标志改变语言时,当前网站的文本和导航栏将立即改变。有没有办法用PHP实现这一点?我不知道PHP中的gettext扩展是否可以通过ajax加载。但我认为值得一试。我希望您熟悉AJAX,它是异步Javascript->Click>触发一个js/AJAX函数,触发一个php文件加载,并吐回您的信息。谢谢,我将搜索更多关于这方面的信息。是的,这绝对值得一试:-我认为XML是错误的方法-在我看来,PHP gettext扩展名.mo/.po是一种方法。这是为多语言网站,翻译目录等。感谢您的答复!是的,我也首先想到了PHP。。。[虽然我对gettext扩展名.mo/.po不太熟悉]……就我记忆所及,当使用PHP和更改语言时,站点会再次加载新的语言文本,对吗?!?但是对于我的项目,我希望在不重新加载的情况下立即进行翻译。因此,当你点击一个标志改变语言时,当前网站的文本和导航栏将立即改变。有没有办法用PHP实现这一点?我不知道PHP中的gettext扩展是否可以通过ajax加载。但我认为值得一试。我希望您熟悉AJAX,它是异步Javascript->Click>触发一个js/AJAX函数,触发一个php文件加载,并吐回您的信息。谢谢,我将搜索更多关于这方面的信息。是的,确实值得一试:-谢谢你的回复,T.J。!好的,如果我用UTF-8做对了,我还可以用亚文、西里尔文和阿拉伯文。。。但它是最建议西方拉丁语文本。对的我不会在网站上使用任何表情符号。。。。但如果我愿意。。。。使用UTF-16不是更安全吗?因此它的字符串长度与JS中的相同?@RostamN.:是的,UTF-8可以像所有其他转换一样对所有Unicode字符进行编码。不,使用UTF-16并不安全;JavaScript字符串的性质与HTML或XML完全无关。谢谢你的回复,T.J。!好的,如果我用UTF-8做对了,我还可以用亚文、西里尔文和阿拉伯文。。。但它是最建议西方拉丁语文本。对的我不会在网站上使用任何表情符号。。。。但如果我愿意。。。。使用UTF-16不是更安全吗?因此它的字符串长度与JS中的相同?@RostamN.:是的,UTF-8可以像所有其他转换一样对所有Unicode字符进行编码。不,使用UTF-16并不安全;JavaScript字符串的性质与HTML或XML完全无关。感谢您的回复,Stephen!所以。。。如果我理解正确的话,您还建议在多语言网站上使用UTF-8。我以前没有新的Unicode基本多语言平面,但现在我将阅读更多关于它的内容。您在Java中以Unicode感知的方式处理文本的具体方法是什么?你知道这方面的一个例子吗?我不会使用任何表情符号或类似的东西。。。。所有不同语言的纯文本和数字。。。。。尽管俄语和普通话等许多语言看起来像外星人的符号:-:d但在Java中是一个打字错误。谢谢你的回复,斯蒂芬!所以。。。如果我理解正确的话,您还建议在多语言网站上使用UTF-8。我以前没有新的Unicode基本多语言平面,但现在我将阅读更多关于它的内容。您在Java中以Unicode感知的方式处理文本的具体方法是什么?你知道这方面的一个例子吗?我不会使用任何表情符号或类似的东西。。。。所有不同语言的纯文本和数字。。。。。尽管俄语和普通话等许多语言看起来像外星人的符号:-:d但在Java中是一个打字错误。应该是Javascript