经过疯狂的谷歌搜索之后,我似乎无法找到一个简单问题的最终答案。如果这是在某个地方回答的问题,我深表歉意,但如果是这样,我找不到它。
在用Javascript编写加密方法时,我开始想知道我的字符串使用的编码字符是什么,为什么。
那么:是什么决定了Javascript中的字符编码?这是标准吗?通过浏览器?由HTTP请求的 header 确定?在HTML的<META>
标记中包含它吗?提供页面的服务器?
通过我的经验测试(更改不同的设置,然后在足够奇怪的字符上使用charCodeAt
并查看该值与哪个编码匹配),它似乎始终是UTF-8或UTF-16,但是我不确定为什么。
谢谢您的帮助!
最佳答案
E262的8.4节:
这种措辞有点令人生厌。这似乎意味着所有计算的内容都将字符串视为每个字符都是UTF-16字符,但是同时没有任何东西可以确保所有字符串都有效。
编辑—明确地说,其目的是字符串由UTF-16代码点组成。在ES2015中,“字符串值”的定义包括以下说明:
因此,即使字符串包含的值不能用作正确的unicode字符,它仍然是字符串。
关于javascript - 默认的Javascript字符编码?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11141136/