2009-12-16 128 views
0

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

Accept-Charset ISO-8859-1,utf-8; q = 0.7,*; q = 0.7

我猜这个问题与ISO-8859-1有关。它有没有人知道为什么页面本身会显示正常,但javascript组件内的文本不会?你不知何故分别为JavaScript文件指定编码?

回答

1

接收字符标签提供了一组是接受编码的 - 如果所有的数据发送是UTF-8编码,那么就不要担心。

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

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


编辑

  • 键入网址到浏览器的JS代码,并期待在 “页面信息” 看到编码。我敢打赌是ISO-8859-1,这将解释标题问题。

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

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

顺便说一句,我有类似的问题,并没有完全理顺的问题(还不能确定源数据不严重编码)。

+0

这是一个EXT JS gridPanel表。该表由JS构建,并放入DOM中。 JS代码被调用onLoad()并驻留在一个单独的文件中。创建表时,JS文件在其中定义了法文字符。 AJAX用于获取表格的内容,但问题实际上出现在AJAX涉及之前定义的表格标题中。我不确定EXT JS是否使用编码或解码,但我不确定他们为什么会这样做表格标题。谢谢! – user77413 2009-12-16 21:54:41

+0

哦,我认为“ext JS”是“外部JavaScript”,但现在我意识到/回想它是来自** www.extjs.com **的代码。 D'哦。 – NVRAM 2009-12-16 22:28:19

+0

我没有意识到文件本身是编码的。我在我的代码编辑器中找到了设置编码的位置。将文件编码更改为UTF-8解决了问题。谢谢!!! – user77413 2009-12-17 00:25:16

0

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

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

+0

我搜索了Accept-Charset,但没有在相关文件中找到任何内容。我很难解决如何解决它。 – user77413 2009-12-16 20:10:41

+0

你能提供一个到代码的链接吗? – Rushyo 2009-12-16 20:49:34

+0

分机不“去掉无法识别的字符” – 2009-12-16 21:17:51