Apache 中文乱码解决方案(很特殊的一种解决办法)

背景描述:

 笔者在把win+php+apache+mysql 环境下的数据导入到LAMP(Linux+apache+mysql +php)下后,CMS生成的静态页面打开以后,文字出现乱码,单击右键查看页面文件,此时“编码”--”自动选择“项勾选,如果此时选择“gb2312”,页面可以完美显示中文。

 

于是我在网上查找了3天时间,关于mysql从win环境转linux环境所有的乱码问题,百试不得其解,都已经要打退堂鼓了,结果,晚上2点多,换了一种思路,问题解决了。我把解决办法告诉大家,共勉!

 

Apache 中文乱码解决方案

服务器端:
======
修改httpd.conf (在Redhat中放置的位置为/etc/httpd/conf/)
查找:
AddDefaultCharset ISO-8859-1
改成:
#AddDefaultCharset ISO-8859-1
AddDefaultCharset off

这种方式关掉了服务器的默认语言的发送,这样仅凭html文件头中设置的语言来决定网页语言。

很多文章都说通过修改为 AddDefaultCharset GB2312 把缺省语言改成GB2312来解决中文乱码,确实GB2312内码的网页可以正常显示了,但这并非万全之策。因为当你的网页内码不是GB2312,就算你在网页用下面的meta指定了正确的语言,如ISO8859-1,也不会解码为ISO8859-1,因为Apache已经先你一步将GB2312指定为网页的语言了,如下图:

而这个是加了 AddDefaultCharset off 后的:

修改后请重新启动Apache,在Redhat中命令为
/etc/init.d/httpd restart

当使用一些网页脚本引擎,如PHP,还可能需要修改相应的配置文件。
以PHP为例,需要修改php.ini (Red Hat中位置在/etc/)

找到:
default_charset = “iso-8859-1″ 或者类似的,如 default_charset = “gb2312″,将其注释掉:
;default_charset=”iso-8859-1″

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值