Javascript 编码法语特殊字符ExtJS

Javascript 编码法语特殊字符ExtJS,javascript,html,extjs,utf-8,Javascript,Html,Extjs,Utf 8,我有一个用ExtJS开发的应用程序。我使用ext-locale-fr.js 我的index.html以 <!DOCTYPE HTML> <head> <meta charset="UTF-8"> 如果我使用HTML实体,它将正确显示 此外,我在这个应用程序中使用sencha图表,这些图表是使用HTML5画布元素绘制的,该元素不解释HTML实体。因此,在我的图表中,会显示以下单词: &Eacute;v&egrave;ne

我有一个用ExtJS开发的应用程序。我使用ext-locale-fr.js

我的index.html以

<!DOCTYPE HTML>
    <head>
        <meta charset="UTF-8">
如果我使用HTML实体,它将正确显示

此外,我在这个应用程序中使用sencha图表,这些图表是使用HTML5画布元素绘制的,该元素不解释HTML实体。因此,在我的图表中,会显示以下单词:

&Eacute;v&egrave;nement
我在网上找到了一个骗局,设法绕过了它:

decodeHtml: function (html) {
    var txt = document.createElement("textarea");
    txt.innerHTML = html;
    return txt.value;
}
但我认为这不是一个好的做法

最后,我重写了ext-locale-fr.js,用它们对应的HTML实体替换所有特殊字符。但这是唯一不起作用的伎俩。在日期选择器中,月份未正确显示,并且� 仍然出现,但我无法使用我的HTML解码技巧

我想治愈这个问题的真正根源,而不仅仅是症状,我也不知道该怎么办

我明确指出,我的应用程序中显示的所有字符串都直接写入我的JS文件,而不是来自ajax请求

我在Windows7、Firefox36和GoogleChrome40上进行了测试。在我的工作电脑上没有问题,但在我的个人电脑上它不工作(更烦人的是,它在客户的电脑上也不工作)

谢谢大家!

如果有什么需要澄清的,请通知我

编辑

以下是我的一个观点中的一个例子:

items: [{
    xtype: 'datefield',
    fieldLabel: 'D&eacute;but',
    name: 'startDate',
    allowBlank: false,
    margin: '5 5 5 5'
}]
结果是:


由于HTML实体,标签没有问题,但是尽管我在ext-locale-fr.js中添加了HTML实体,月份名称还是有问题。

在我的例子中,这个问题是由于*.js文件的文件编码造成的。使用Sencha cmd生成的文件没有用UTF-8编码,我的编辑器尊重源代码编码。将文件编码更改为UTF-8解决了问题。

是否确实将所有文件编辑为utf8?你的编辑器似乎将你的ext locale文件视为iso8859-*。我很确定,因为我使用括号编辑器,它只打开utf-8文件。你能将有问题的页面或至少部分页面发布到某个地方吗?我添加了一个简短的示例,我希望它足够了
items: [{
    xtype: 'datefield',
    fieldLabel: 'D&eacute;but',
    name: 'startDate',
    allowBlank: false,
    margin: '5 5 5 5'
}]