首页 > 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.