我正在使用CGI::Application
UTF-8数据.
在HTML中,我将编码设置为UTF-8,就像这样
但输出被视为latin1,因为特殊字符显示为2个字符.
Firefox中的页面信息表示,ISO-8859-1
尽管有HTML标题,页面仍会进行编码.
我只能找到关于这个问题的这两个 帖子,但它们已经陈旧且非常复杂.
有谁解决了这个问题?
更新:以下是FireBug的HTTP标头.
Response Headers Date Tue, 26 Apr 2011 09:53:24 GMT Server Apache/2.2.3 (CentOS) Connection close Transfer-Encoding chunked Content-Type text/html; charset=ISO-8859-1 Request Headers Host example.com User-Agent Mozilla/5.0 (X11; Linux x86_64; rv:2.0) Gecko/20100101 Firefox/4.0 Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language en-gb,en;q=0.5 Accept-Encoding gzip, deflate Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive 115 Connection keep-alive
我注意到如果我强制使用UTF-8 FireFox->Web Developer->Character Encoding->Unicode (UTF-8)
,如果看起来正确的话.
您的HTTP标头:
Content-Type text/html; 字符集= ISO-8859-1
...声称文档编码为拉丁文1.真正的HTTP标头优先于HTML 数据.
$webapp->header_add(-type => 'text/html; charset=UTF-8');
...如果我正确阅读文档,应该做的工作.