【发布时间】:2016-04-18 16:10:17
【问题描述】:
据我所知,java 在内部使用 UTF-16 来表示字符和字符串,
因此,如果我们从文件加载文本文件,它会自动解码为其原始编码为 utf-16。
现在javascript也可以这样说
它还使用 utf-16 作为内部字符串表示。
假设我们使用 ajax 加载以 utf-8 编码的字符串 x,
为了让 javascript 能够在内部以 UTF-16 表示该字符串,发生了一个转换。
请告诉我我所说的是否正确, 因为真正的问题还没有到来……
现在假设浏览器正在使用 utf-8 编码呈现页面,
并使用 javascript 我们希望浏览器也呈现 ajax 字符串 x (就像你通常做的那样)
在这种情况下,是否需要进一步从 utf-16 转换为 utf-8 ?
提前致谢。
【问题讨论】:
-
未指定字符串的内部浏览器表示。可以告诉浏览器以各种编码来解释 HTML 源代码,但是一旦它们解析了 HTML,它就不再重要了。您在编码方面有什么特殊问题吗?
-
您的评论对我来说没有多大意义,我认为这很重要,特别是如果您使用的是 AJAX。
-
浏览器将接受的内容和它在内部使用的内容是有区别的。再说一次,你到底想做什么?有什么不工作吗?
-
它工作正常,只是对js如何使用字符串编码有疑问
-
Java 中没有指定字符串的内部表示(在语言中,也没有在 VM 规范中)。 String 类的 API 使得在大多数情况下选择 UTF-16 作为内部表示是合理的,但在任何地方都没有强制要求。
标签: javascript java string encoding character-encoding