Eclipse/Zend Studio编辑一php项目,已经设置了项目的Text file Encoding为UTF-8,发现打开php文件显示中文正常,但某些html打开显示为乱码。右键查看这些html的properties,resource中的Text File Encoding显示为:Default(determined from content:GBK)。原来项目设置的编码对这些文件不起作用。
该问题查看Eclipse帮助文档,在“Defining HTML file preferences"一节中有如下解释:
Note: Encoding detection (when loading files) is performed in the following order:
Locate the encoding name embedded in the document.
When no encoding is embedded in the document, an automaticencoding detector attempts to determineencoding used in the document.
If the encoding still cannot bedetermined, theencoding defined in the Encoding field is used.
也就是HTML文件的编码判定顺序,按照文件内容编码优先,然后是文件编码。也就是说,如果HTML内有
的定义,就按照charset的来设置编码。
问题是,我打开的html均没有设置charset,但是默认还是认为是gbk文件。发现是contentType设置问题。想取消IDE自身的determined机制,可惜Eclipse还不能设置。几经折腾,最后采用如下办法解决问题:
windows->preferences->General->Content Types,选择text->html,在最下面的Default encoding中,设置为utf-8,点击update,问题解决。