【问题标题】:How do I adjust for foreign characters when working with javascript language files served by requireJS?使用 requireJS 提供的 javascript 语言文件时如何调整外来字符?
【发布时间】:2025-12-02 22:45:01
【问题描述】:

我正在尝试使用requireJSjquery-mobile 构建模板。我正在从离线/在线源中提取数据并通过 requireJS i18n 插件 (here.

除了外来字符,一切都很好。

我的语言文件几乎不包含任何内容。它们看起来像这样:

define({
    "tx_sel_choose_retailer":"Händler wählen",
    "tx_sel_delete":"Löschen"
});

通过 requireJS 引入。

问题
使用此捆绑包时,如何使 äöü 之类的字符显示为我需要的?我是否必须在 Javascript 中声明某些内容,因为一旦我将它们拉入以构建我的元素(在将它们放入页面之前),这些字符就是错误的。

感谢一些提示?

【问题讨论】:

    标签: javascript html utf-8 internationalization requirejs


    【解决方案1】:

    你需要处理两件事:

    • 声称的编码
    • 物理编码

    声称的编码是您的服务器发送的 http 标头,即 I.E. http 标头 Content-Type: text/javascript; charset=utf-8 将声称该文件采用 utf-8 编码。您也可以使用元标记在您的 html 源代码中声明编码,但最好使用真正的 http 标头。

    然后在另一边你有文件的实际物理编码,如果你声称文件是 utf-8,但它在物理上是别的东西,你将不会得到预期的结果。您需要配置您的文本编辑器以使用您声称该文件的相同编码保存文件。

    【讨论】:

    • 所以如果我最终从我的数据库表中生成服务器上的文件(我正在使用 Coldfusion),我需要在保存时设置编码吗?不,我很好奇......并开始搜索。到目前为止谢谢!
    • @frequent 是的,保存文件时需要明确声明文件必须以utf-8保存。如果数据已经在数据库中搞砸了,或者您的连接编码设置不正确等,可能会出现更多复杂情况。在coldfusion中是这样的:<cffile action="write" charSet="UTF-8" file="C:\something\something.js" output="data">
    • 找到了。 Notepad++ 默认编码 = ANSI。切换到 UTF-8,现在完美了。再次非常感谢!
    • @frequent 请注意,在Notepad++ 中你想使用UTF-8 without BOM,Notepad++ 中的UTF-8 编码添加了对文件开头的useless-for-utf8-bom 字符进行编码。跨度>
    最近更新 更多