今天调数据的时候发现调出来的一直是乱码,用了各种方法都未解决,简单的调数据用了好长时间,最后突然发现了一个问题 页面的

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

而数据字段用的是 gbk_chinese_ci

连接数据库指定输出 mysql_query("set names 'GBK'"); 原来有不同。

上网查了一下,感觉一下结果还不错

首先, 关闭PHP配置文件php.ini中的default_charset:

1. 页面没有指定charset , Apache配置defaultcharst gbk , 页面文件编码是utf-8

结果: 乱码,使用wireshark抓包,发现服务器返回的header中指明了:


  1. Content-Type:text/html;charset=GB

结论:当页面没有指明charset的时候,Apache的defaultcharset起作用

2. 页面指定charset为utf-8, Apache配置defaultcharset gbk. 页面文件是utf-8


  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>

结果还是出现乱码。

结论:当Apache配置了DefaultCharset, 将忽略页面的charset申明。

3. PHP header申明charset为utf8, Apache配置defaultcharst gbk,页面文件编码是utf8


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

结果 : 页面显示正常。

4 Apache设置DefaultCharset off

结果,页面显示正常。

翻阅了下Apache2的手册:


  1. AddDefaultCharset指令
  2. 说明当应答内容是text/plain或text/html时,在HTTP应答头中加入的默认字符集
  3. 语法AddDefaultCharsetOn|Off|charset
  4. 默认值AddDefaultCharsetOff
  5. 作用域serverconfig,virtualhost,directory,.htaccess
  6. 覆盖项FileInfo
  7. 状态核心(C)
  8. 模块core
  9. 当且仅当应答内容是text/plain或text/html时,此指令将会在HTTP应答头中加入的
  10. 默认字符集。理论上这将覆盖在文档体中通过<meta>标签指定的字符集,但是实际
  11. 的行为通常取决于用户浏览器的设置。AddDefaultCharsetOff将会禁用此功能。
  12. AddDefaultCharsetOn将启用Apache内部的默认字符集iso-8859-1。您
  13. 也可以指定使用在IANA注册过的字符集名字中的另外一个charset。
  14. 比如说:
  15. AddDefaultCharsetutf-8

也就是说,当Apache不指定defaultcharset的时候,页面编码由页面自己的meta标签指定。

当Apache指定的时候,将忽略页面中的meta标签指定的编码. 但是容许脚本直接header编码方式给客户端

最后,还有一个问题没有得出结果:

当Apache和页面都没有指定的时候,又如何?

我在自己的机器上,如果都不指定,默认还是utf8.

最后说一下解决办法吧,呵呵。将其在记事本里打开,然后改自己想要的编码格式就行啦,注意:不要在Dreamweaver中直接修改,要不改完的结果是页面全部乱码,注意哈!!!!

 

utf_8 和 GBK 不搭出现乱码(转)的更多相关文章

  1. 在UTF-8页面中引入编码为GBK的JavaScript文件乱码问题了

    原文地址:http://js8.in/2009/12/11/%E5%AF%B9%E5%BC%95%E7%94%A8%E5%A4%96%E9%83%A8javascript%E9%A1%B5%E9%9D ...

  2. ajax 一个 gbk 目标后内容乱码的解决方案

    ajax 一个 gbk 目标后,如果内容出现乱码,说明服务器在送出内容时没有指定 charset,ajax 对于没有指定 charset 的 response 默认以 utf-8 来处理,所有出现乱码 ...

  3. Sublime Text 支持GBK , 解决中文乱码问题

    Sublime Text 是一款既简洁又强大的文本编辑器,其默认采用UTF8编码,这就造成了许多采用GBK编码的文件里的中文显示为乱码. 有一个专门解决这个问题的插件:ConvertToUTF8 要安 ...

  4. Weblogic部署gbk编码的项目乱码

    问题描述: weblogic默认部署的项目编码utf-8,由于项目特殊编码gbk导致打开项目中文全是乱码! 心哇凉哇凉.... 问题解决: 01.调休jvm参数 xxx_domains/bin/set ...

  5. utf8转gbk,libcurl中文乱码处理

    这两个转码在网页客户端处理用很常见,所使用的平台为VS2010,字符集采用多字节字符集 utf8转gbk string UTF8ToGBK(const std::string& strUTF8 ...

  6. 解决GBK字符转UTF-8乱码问题

    通过以下方法将GBK字符转成UTF-8编码格式的byte[]数组 package test; import java.io.UnsupportedEncodingException; public c ...

  7. ubuntu 打开 gbk编码的txt乱码

    iconv -f gbk -t utf8 filename.txt > filename.txt.utf8

  8. ueditor 1.4.3 gbk asp 上传中文乱码 终极解决方法 ie6 ie8 也适用

    [摘要:百度编纂器1.43 gbk asp 题目 1.firefox3.0下 单图上传 面没有了 面多图上传 中央的蓝色按钮(即 面击挑选图片)没有表现(附件上传出那个题目) 没有晓得我的水狐吃翔了 ...

  9. 令人崩溃的@requestBody乱码一例

    这个问题真是让我心力憔悴了...在客户现场对接就是乱码,StringHttpConverter怎么配置都不行... 场景其实很简单:客户那头post一个http请求,包体是json字符串,我这头spr ...

随机推荐

  1. MongoDB快速入门(十三)- 聚合count、distinct和group

    1. count:     --在空集合中,count返回的数量为0.     > db.test.count()    0    --测试插入一个文档后count的返回值.    > d ...

  2. 关于Jupyter Notebook默认起始目录设置无效的解决方法

    一.问题描述 今天折腾jupyter的时候,突然觉得起始目录是用户根目录很麻烦,想着把他改成自己的某个文件,按照网上方法折腾半天也还是无效.东点点西看看才发现端倪. [win10以下好像没这个问题,修 ...

  3. Ubuntu chrome FQ

    按照文档FQ,需要注意一下两点: 1. 在安装Chrome 下的 SwitchyOmega 插件时,拖入到浏览器不能识别,应该打开chrome://extensions/再拖入: 2.在设置时排列列表 ...

  4. 地图Legend控件的使用

    http://support.esrichina-bj.cn/2011/0318/1150.html

  5. 【Demo】CSS3 2D转换

    2D转换transform 2D变换方法: translate() 根据左(X轴)和顶部(Y轴)位置给定的参数,从当前元素位置移动. div { transform: translate(50px,1 ...

  6. os.path.abs()与os.path.realpath()的一点区别

    相同点 1. 两者都是返回绝对路径,如果参数path为空,则返回当前文件所在目录的绝对路径 当前py文件所在的目录是revise print(os.path.abspath("") ...

  7. Gradle 一(Android)

    参考一:Gradle 完整指南(Android) 参考二:深入理解Android(一):Gradle详解 参考三:Gradle for Android 第一篇( 从 Gradle 和 AS 开始 ) ...

  8. 010-对象——构造方法__construct析构方法__destruct使用方法 PHP重写与重载

    <?php /*抽象方法和抽象类 抽象类必须通过子类继承之后,才能实现实例化. 类中有抽象方法,必须声明抽象类. 如果是抽象类,可以没有抽象方法,但必须通过子类去继承之后,实现实例化 final ...

  9. 下载并安装Prism5.0库 Download and Setup Prism Library 5.0 for WPF(英汉对照版)

    Learn what’s included in Prism 5.0 including the documentation, WPF code samples, and libraries. Add ...

  10. Struts01---入门小案例

    创建web项目    实现的效果! 用户点击页面不同的链接,后台调用不同的代码! 创建两个类实现共同的接口! public interface Action { String execute(); } ...