老声长谈,着是困惑很多人的问题,如果处理不好,都是乱码,说这些话并不是我对编码很 精通,只是在这方面是得留神,自己总结了一点小经验(容易出现乱码的地方有 php 文件里 面 ,数据库里面 存储 的编码 ,页面显示 ,数据传输 ): 1.在建数据库的时候,尤其是用 phpMyAdmin 与 MYSQL 打交道时候,一般都是 utf-8,字段 为 utf8_general_ci 数据库的设置: 在 my.ini 文件中查找: [mysql] default-character-set = utf8 [my
sqld] default-character-set = utf8 init_connect = 'SET NAMES utf8 ' 全部设置为 utf8 保存,重新启动
mysql 服务
2.在与数据打交道的时候 mysql_query("set names 'utf8'");注意是:utf8,不是 utf-8 3.PHP 的文件默认的编码是 ANSI ,需要转换为 UTF-8 ,至于怎么转换 editplus 就有这样 的功能,“另存为”的时候有选择编码 UTF-8 ,注意:不能选择:UTF-8 + BOM,如果选择 这 个 了 , 你 在 处 理 session 的 时 候 就 会 出 现 问 题 , 所 以 一 定 要 注 意 . 还 有 有 的 人 在 eclipse,Myeclipse,ZendStudio 里面开发, eclipse 里面默认的是 ISO-8859-1,需要在“窗口 ”->“首 选项 ”打开“首选项”窗口,在左侧“常规 ”->“
工作空间 ”,在“文本文件编码 ”里面设置默认 的编码为 utf-8
4. 就 是 PHP 文 件 里 面 要 说 明 : 如
或者
http-equiv="Content-Type"
view plaincopy to clipboardprint? 1.
5. 还 有 就 是 处 理 中 文 等 双 字 节 的 时 候 也 有 可 能 出 现 乱 码 ,
PHP 里 面 可 以 采 用 的 有 iconv,mb_convert_encoding 来处理双字节,其余的可以参考 PHP 帮助手册 6.在补充一点(遗漏的一点) ,在你的
程序里面你要知道数据之间的传递也有可能存在编码
问题的,但是你又不知道传递过来的数据是采用的什么编码,在 PHP 里面提供了方法来处 理的,下面是自己写的一个简单方法,可以参考一下
view plaincopy to clipboardprint? 1.//编码转换 2. function display_fileencoding($filename) 3. { 4. if(extension_loaded("mbstring")) 5. { 6. $code=mb_detect_encoding($filename);//检测字符串编码 7. $filename=mb_convert_encoding($filename,"UTF-8",$code);//将 编码 $code 转换为 utf-8 编码 8. return $filename; 9. } 10. else 11. die("请检查
系统是否正确安装配置 mbstring"); 12. } 要确保 mbstring 在你的 php.ini 中启用 7.保证以上几处编码一致就可以了! !数据库,网页输出都不会出现乱码了,如有不对的,请 留言指出! !