Apache HTTP Server上常会遇到的乱码问题

 

Preface

在浏览本文之前,请保证已经安装好Apache HTTP Server。

Environment

OS: Windows XP

Web Server: Apache HTTP Server 2.2.4

Introduction

本文主要讲述在Apache HTTP Server上的Web Application可能遇到的乱码问题以及解决方法。

 

Section 1 - Problem:

如果利用Apache HTTP Server去Develop或者Deploy Web App,往往在制作中文或者其他非英文语言的Web的时候会遇到乱码问题。

Section 2 - Reason:

因为Apache HTTP Server在默认安装状态下的default charset是iso-8859-1,所以无法完整支持中文编码GBK或者UTF-8等字符的显示。

Section 3 - Solution:

例如我们现在需要Web正常显示UTF-8编码的字符,有几种方法我们可以选择:

A. 在没有配置Apache HTTP Server的default charset的情况下,页面指定charset为UTF-8。 (适合于设置个别Page)

  1. <head>
  2.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  3. </head>
  4. <body>
  5.         <div id="page-header">
  6.          测试Apache DefaultCharset
  7.         </div>
  8. </body>
  9. </html>

 

B. 在PHP header申明charset为UTF-8,是否已经配置Apache HTTP Server的default charset都不重要,因为都会被override。 (适合于设置个别Page)

  1. header("Content-Type:text/html; charset=utf-8");

 

C. 在Apache HTTP Server的httpd.conf文件中设置AddDefaultCharset (httpd.conf中没有的就添加,已有这项的就修改)。 (适合于设置个整个Website)

  1. AddDefaultCharset utf-8

 

C这方法可能会使得一部分人产生疑惑,因为这样设定的话,如果Web Server上同时存在着几个Web App,而且各自使用不同编码,那这样设定的话就会使得其他Web App显示不正常,因此我们可以利用Directory去指定具体的Web App的目录,如下

  1. <Directory "D:/Apache Software Foundation/Apache2.2/htdocs/discuz/bbs">
  2. AddDefaultCharset utf-8
  3. </Directory>

这样每一个处于不同目录的Web App就可以运行在不同的编码环境中。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值