如何将 unicode 字符放入 javascript
How to put unicode chars in javascript
我的前端使用 BaaS。它允许我使用我的后端逻辑上传一个 javascript 文件。我可以在客户端通过 REST API 使用它。
在其他服务中,我实施了本地化服务。字符串是这样预定义的:
var locals = {
"EN": {
"1": "Home",
"2": "Ready"
},
"BG": {
"1": "Начало",
"2": "Готово"
}
在此示例中,我提供了英语和保加利亚语字符串的本地化。
问题是 BaaS 系统不尊重西里尔 (Unicode) 字符。
当我上传包含上述内容的脚本时,所有西里尔字符都被替换为“????”。
我可以使用 this method 来解决问题,但是 escape/unescape 函数已被弃用。
有没有更好的解决方案?
避免此问题的最有效方法是什么?
要引用非 Unicode 安全的 JavaScript 文件中的非 ASCII 字符,请使用 JS 字符串文字字符转义:\uNNNN
其中 NNNN 是 UTF 的十六进制数-16 个与字符串关联的代码单元(与基本多语言平面中这些字符的代码点编号相同)。
"BG": {
"1": "\u041d\u0430\u0447\u0430\u043b\u043e",
"2": "\u0413\u043e\u0442\u043e\u0432\u043e"
}
西里尔字符的代码点列表here。您也可以使用 Firefox 的 toSource
方法为您计算:
> 'Начало'.toSource()
(new String("\u041D\u0430\u0447\u0430\u043B\u043E"))
When I upload the script with content as above, all cyrillic chars are replaced with "????".
你确定是“BaaS”的错吗?我们无法真正判断,因为您还没有告诉我们这项服务是什么,甚至是什么类型的服务。
如果您通过 Ajax 获取的是 JS 文件,您需要将文件保存为 UTF-8 编码,以便能够使用非 ASCII 字符,而无需像上面那样对其进行编码。如果您将它包含在脚本元素中,您还需要将 HTML 页面保存为 UTF-8 并包含 UTF-8 meta charset
指令。
我的前端使用 BaaS。它允许我使用我的后端逻辑上传一个 javascript 文件。我可以在客户端通过 REST API 使用它。 在其他服务中,我实施了本地化服务。字符串是这样预定义的:
var locals = {
"EN": {
"1": "Home",
"2": "Ready"
},
"BG": {
"1": "Начало",
"2": "Готово"
}
在此示例中,我提供了英语和保加利亚语字符串的本地化。 问题是 BaaS 系统不尊重西里尔 (Unicode) 字符。 当我上传包含上述内容的脚本时,所有西里尔字符都被替换为“????”。
我可以使用 this method 来解决问题,但是 escape/unescape 函数已被弃用。 有没有更好的解决方案? 避免此问题的最有效方法是什么?
要引用非 Unicode 安全的 JavaScript 文件中的非 ASCII 字符,请使用 JS 字符串文字字符转义:\uNNNN
其中 NNNN 是 UTF 的十六进制数-16 个与字符串关联的代码单元(与基本多语言平面中这些字符的代码点编号相同)。
"BG": {
"1": "\u041d\u0430\u0447\u0430\u043b\u043e",
"2": "\u0413\u043e\u0442\u043e\u0432\u043e"
}
西里尔字符的代码点列表here。您也可以使用 Firefox 的 toSource
方法为您计算:
> 'Начало'.toSource()
(new String("\u041D\u0430\u0447\u0430\u043B\u043E"))
When I upload the script with content as above, all cyrillic chars are replaced with "????".
你确定是“BaaS”的错吗?我们无法真正判断,因为您还没有告诉我们这项服务是什么,甚至是什么类型的服务。
如果您通过 Ajax 获取的是 JS 文件,您需要将文件保存为 UTF-8 编码,以便能够使用非 ASCII 字符,而无需像上面那样对其进行编码。如果您将它包含在脚本元素中,您还需要将 HTML 页面保存为 UTF-8 并包含 UTF-8 meta charset
指令。