PHP脚本程序解析数据库UTF-8字符集几点看法
来源:互联网 发布:centos7 nginx 编辑:程序博客网 时间:2024/05/19 05:01
这两天改Discuz!7.2(UTF-8字符集)时,需要自己写部分php程序,总结了下经验.有如下几点.
如果不幸在安装MySQL时选择了UTF-8字符集,而PHP文件又正好是需要显示MySQL里面的这些字符,基本100%会出现乱码,有如下几种方法.
1.会HTML的人都能想到.将HTML的<meta http-equiv="Content-Type" content="text/html; charset=gb2312">这句改成<meta http-equiv="Content-Type" content="text/html; charset=utf-8">即可.
2.思想和1点差不多.利用php的header()函数修改为utf-8编码.在所有的HTML输出之前加一句
header(”Content-Type: text/html; charset=UTF-8″) ;
3.在你php文件的mysql_select_db()函数后面加一句mysql_query("set names 'utf8'");
4.以上可以解决php文件从数据库里取出来显示的文本都是正常的中文了.但是如果在本php文件中还有中文输出显示,那么用记事本打开你的php文件,选择文件->另存为...,同时编码要选择为utf-8,这样,php文件里的中文也可以正常显示了.EditPlus也可以另存为utf-8.存为utf-8后文件大小会比ANSI编码的有所增加.
附录:
phpchina的这篇文章,应该表达得比我更清楚,拿来用了.原文地址:http://bbs.phpchina.com/viewthread.php?tid=195649&rpid=1642944&ordertype=0&page=1#pid1642944
文件编码格式:ANSI(gb2312,GBK),utf-8(那个无bom格式干吗的?)
一般我用到的就这两种格式。
首先保存文件的时候分清楚是那种格式。ANSI/UTF-8
以UTF-8格式保存的文件
用meta申明字符集的时候一定要选择utf-8,如下
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
如果使用gb2312、gbk那么页面中的内容会出现乱码(不包括PHP从数据库中读取的内容,就是$row[]中的内容)
在读取数据库文本的时候使用mysql_query("set names utf8");
把读取到的内容以utf-8格式显示出来。
以ANSI格式的文件
meta申明字符集就用gb2312、GBK
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
mysql_query("set names GBK");
<meta>标签申明的字符集只对页面中的文字内容起作用,从数据库提取到的文本就要用mysql_query("set names ?")
来更改内容以何字符集显示。
另外写进数据库的时候可以用任何的字符集,只要不出现乱码就行。只要在提取的时候使用跟文件保存的格式一致就行。
我刚接触的时候对这问题烦恼了很久,网上搜索的资料都不详细,说就说一半也不说说清楚。
- PHP脚本程序解析数据库UTF-8字符集几点看法
- linux 字符集GBK转UTF-8脚本
- tinyxml解析UTF-8字符集的xml
- php+mysql+apache utf-8字符集
- php 设置字符集为utf-8
- PHP设置页面字符集utf-8
- mysql创建utf-8字符集数据库
- mysql创建utf-8字符集数据库
- mysql创建utf-8字符集数据库
- mysql创建utf-8字符集数据库
- MySQL数据库修改字符集为UTF-8
- mysql修改字符集位utf-8使其和操作数据库连接字符程序统一
- 系统分析的几点看法
- 分页的几点看法
- 讨论优化php程序的几点
- 写程序如做人——提高程序性能的几点看法
- php utf-8字符集下实现中文无乱码截取
- PHP rtrim函数在utf-8字符集下"邯郸市"乱码
- 轻量级的ComponentArt
- 第一次来
- 对与错、是与非、成与败、得与失
- Qt多线程-转载
- 天梭 TISSOT
- PHP脚本程序解析数据库UTF-8字符集几点看法
- JFreeChat 中文乱码、汉字乱码的解决方案
- Winform ListVeiw 控件的使用
- 想要做的
- Eclipse 添加插件的几种方法
- window.onresize 多次触发及其解决办法 - debounce
- asd
- 童趣 2
- Coldfusion的另类replace。