首页 > tips > apache里用cgi方式执行perl程序,其CGI模块会影响apache的charset

apache里用cgi方式执行perl程序,其CGI模块会影响apache的charset

2011年9月14日 发表评论 阅读评论

  最近在搞rackmonkey的中文问题,本来大家都用utf8编码就啥事儿没有了的。于是就在apache里强制AddDefaultCharset UTF-8,可相当诡异的是,页面输出的时候还是直接跳到iso-8859-1去了,抓了下头,才知道原来apache直接送出一个http头,说“charset=ISO-8859-1”,害得我查半天,最早以为是http认证那块儿改了charset设置,注释掉也不行,最后才搞明白原来这个头是perl程序吐出来的,再大概一翻代码,原来perl程序使用了CGI模块儿,看了下CGI的文档,原来找个模块缺省是吐“charset=ISO-8859-1”的,这样一来,问题好解决了,在程序里调用cgi->header的地方指定charset,或者釜底抽薪,直接将其调用的CGI模块改了,将charset的缺省值改成“UTF-8”,问题即解决。

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word