解决网页乱码问题

很多时候,在编写Web程序的时候,往往遇到中文显示为乱码 或者 数据库中文检索时,出现无法检索中文的情况等;


这里简单的介绍几种解决乱码问题的方案:

首先,对于数据库中需要支持中文的需要设置为utf相关的编码,同时整个系统编码保存一致;

其次:

  1. 标签设置编码:<meta http-equiv="content-type" content="text/html; charset=utf-8">
  2. header(“content-type:text/html; charset=xxx”) 设置编码;
  3. 整个 Apache 的配置文档 httpd.conf,AddDefaultCharset 设置编码;
  4. php.ini 中的 default_charset 设置编码;

详细说明:

  • 标签设置页面编码,只是声明客户端的浏览器用什么字符集编码显示该页面。请注意,该标签属于 HTML 信息的,往往在单纯HTML中可以考虑使用: <meta http-equiv="content-type" content="text/html; charset=utf-8">
  • header(“content-type:text/html; charset=xxx”)函数只能在 php 页面内使用,作用是把括号里面的信息发到HTTP标头。注意区分标签和标头,HTTP标头是服务器以 http 协议传送 HTML 信息到浏览器前所送出的字串。而标签是属于 HTML 信息的,所以 header() 发送的内容先到达浏览器,通俗点就是 header() 的优先级高于 (不知道可不可以这样讲) HTML标签。
  • 整个 Apache 的配置文档 httpd.conf。在httpd.conf中有一行为AddDefaultCharset xxx  (xxx为编码名称)。作用是设置整个服务器内的网页文件 http 标头里的字符集为你默认的 xxx字符集。有这行,就相当于给每个文件都加了一行 header(“content-type:text/html; charset=xxx”)。如果在AddDefaultCharset xxx 前面加个”#”,注释掉,而且页面里不含 header(“content-type…”)语句,这个时候就轮到 meta 标签起作用了。建议给你的每个页面都加个header(“content-type:text/html;charset=xxx”),这样就可以保证它在任何服务器都能正确显示,可移植性也比较强。
  • php.ini中的default_charset定义了 php 的默认语言字符集。一般推荐注释掉此行,让浏览器根据网页头中的 charset 来自动选择语言而非做一个强制性的规定,这样就可以在同台服务器上提供多种语言的网页服务。


如果,你需要中文检索,在使用查询语句前,要先设置编码:读数据库时,设置   $conn->query("set character set 'utf8'");或者  mysql_query("SET NAMES 'UTF8'")。




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值