【问题标题】:French characters are not displaying correctly inside javascript grid法语字符在 javascript 网格中无法正确显示
【发布时间】:2009-12-16 19:08:29
【问题描述】:

我们已将其中一个页面翻译成法语,页面中的所有 html 都完美显示。也就是说,有一个 javascript 表(ext js),重音字符显示不正确。该页面在 HTML 元标记中编码为 UTF-8,但是当我查看 FireBug 内部时,我看到以下内容:

接受字符集 ISO-8859-1,utf-8;q=0.7,*;q=0.7

我猜这个问题与 ISO-8859-1 已经恢复正常有关。有谁知道为什么页面本身可以正常显示,但 javascript 组件中的文本却不能?您是否以某种方式分别为 javascript 文件指定编码?

【问题讨论】:

    标签: character-encoding extjs


    【解决方案1】:

    Accept-Charset 标签给出了一组被接受的编码——如果发送的所有数据都是UTF-8编码的,那就别担心了。

    你能详细说明发生了什么吗?

    1. 你说“javascript table”——我想你是在 JS 中构建一个 HTML 表格并将其放置在 DOM 中?请详细说明,尤其是 w.r.t.任何字符转换。您是在构建 HTML 文本还是构建具有属性的 DOM 元素?
    2. JS 从哪里获取数据?如果使用 AJAX,您是否验证了该页面的编码?
    3. JS 是使用 encode() 还是 decode()?那些不能正确处理 UTF-8。


    编辑
    • 在浏览器中键入 JS 代码的 URL,然后查看“页面信息”以查看 编码。我敢打赌 是 ISO-8859-1,它可以解释标题问题。

    • 接下来,检查 AJAX 数据的编码。如果它是动态创建的,您可以:

      1. 在 FireBug 的控制台中启用“显示 XMLHttpRequests”,
      2. 在您的基本 HTML 页面上加载,
      3. 打开 FireBug 控制台选项卡,
      4. 展开 AJAX GET/POST 请求并打开 Response 子选项卡,
      5. 检查数据的编码,并根据需要进行修复。

    顺便说一句,我也遇到了类似的问题,但还没有完全解决问题(仍然不确定源数据的编码是否正确)。

    【讨论】:

    • 这是一个 EXT JS gridPanel 表。该表是用 JS 构建的,并被放置到 DOM 中。 JS 代码被调用 onLoad() 并驻留在一个单独的文件中。 JS 文件在创建表时在其中定义了法语字符。有 AJAX 用于获取表格的内容,但问题实际上存在于在 AJAX 参与之前定义的表格标题中。我不确定 EXT JS 是使用编码还是解码,但我不确定他们为什么会对表格标题这样做。谢谢!
    • 哦,我认为“ext JS”是“外部 JavaScript”,但现在我意识到/回忆起它是来自 www.extjs.com 的代码。哦。
    • 我没有意识到文件本身是编码的。我在我的代码编辑器中找到了设置编码的位置。将文件编码更改为 UTF-8 解决了该问题。谢谢!!!
    【解决方案2】:

    分机是可能的。作为安全预防措施,JS 文件会去除无法识别的字符。

    “Accept-Charset”标头可以在许多地方指定,包括作为某些 HTML 元素中的属性。您是否在违规文件中搜索了 Accept-Charset(不区分大小写)?

    【讨论】:

    • 我搜索了 Accept-Charset,但在相关文件中没有找到任何内容。我不知道如何解决它。
    • Ext 不会“去除无法识别的字符”
    • 我认为 ext 意味着外部:]
    猜你喜欢
    • 2018-05-19
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 2021-12-23
    • 2013-04-12
    • 2013-12-23
    • 2011-08-06
    相关资源
    最近更新 更多