怎样解决PHP中文乱码问题
来源:互联网 发布:bbs网络上什么意思 编辑:程序博客网 时间:2024/05/16 18:06
A.首先说下HTML中文乱码问题的解决方法。
比如有个index.html的页面(这里是指真正的静态页面,修改服务器的……伪静态的请看方案B)
1.在head标签里面加入这句
view plaincopy to clipboardprint?
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head>
2.将文件的编码存为UTF-8.记事本或Editplus等编辑器都有保存时选择编码的功能。
B.HTML和PHP混合的页面解决方案。
除了A方案说的那些之外。还要在文件的最上面加上下面这句代码。
view plaincopy to clipboardprint?
<?phpheader("Content-type:text/html;charset=utf-8");?>
注意header前面不要有任何的输出(echo/print/print_r/var_dump等PHP的输出语句,或者是你在“<?php”前面回车/空格)。否则会报错。
如果你用系统自带的Notepad保存为UTF-8编码的文件时会报错。
为什么呢?明明header已经写在最前面了。
不要着急,因为你看到的并不是真实的。实际上你的“<?php”标签前面已经存在了3个可恶的‘东东’,但普通编辑器看不到。如果你用UltraEdit打开并切换到16进制模式可以看到前面多了“EF BB BF”。这是跟Windows识别编码的方式有关。但我们的Apache却不认识这个,把它当成了输出。导致header出错。别怕,还是有解决的方法。
很简单,直接使用Editplus保存为UTF-8即可。因为Editplus的UTF-8是去除了BOM的。
C.纯PHP页面的中文乱码解决方案(数据是静态的)
只要在页面的开始加上
view plaincopy to clipboardprint?
<?phpheader("Content-type:text/html;charset=utf-8");?>
然后保存为UTF-8编码的文件即可。注意和方案B一样。注意用那些去除BOM的编辑器保存。否则还是会报错。
D.PHP+Mysql中文乱码解决方案
除了按方案C那样的做法外,还要在你的数据查询/修改/增加之前加入数据库编码。
view plaincopy to clipboardprint?
<?phpmysql_query('SET NAMES UTF8');//接下来的就是查出数据或者修改,增加咯?>
注意这里的UTF8和之前的不一样。中间没有横线。
通过以上应该就能解决PHP中文乱码的问题了。呼呼~~
比如有个index.html的页面(这里是指真正的静态页面,修改服务器的……伪静态的请看方案B)
1.在head标签里面加入这句
view plaincopy to clipboardprint?
- <head>
<metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"/>
</head>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head>
2.将文件的编码存为UTF-8.记事本或Editplus等编辑器都有保存时选择编码的功能。
B.HTML和PHP混合的页面解决方案。
除了A方案说的那些之外。还要在文件的最上面加上下面这句代码。
view plaincopy to clipboardprint?
- <?php
- header("Content-type:text/html;charset=utf-8");
?>
<?phpheader("Content-type:text/html;charset=utf-8");?>
注意header前面不要有任何的输出(echo/print/print_r/var_dump等PHP的输出语句,或者是你在“<?php”前面回车/空格)。否则会报错。
如果你用系统自带的Notepad保存为UTF-8编码的文件时会报错。
为什么呢?明明header已经写在最前面了。
不要着急,因为你看到的并不是真实的。实际上你的“<?php”标签前面已经存在了3个可恶的‘东东’,但普通编辑器看不到。如果你用UltraEdit打开并切换到16进制模式可以看到前面多了“EF BB BF”。这是跟Windows识别编码的方式有关。但我们的Apache却不认识这个,把它当成了输出。导致header出错。别怕,还是有解决的方法。
很简单,直接使用Editplus保存为UTF-8即可。因为Editplus的UTF-8是去除了BOM的。
C.纯PHP页面的中文乱码解决方案(数据是静态的)
只要在页面的开始加上
view plaincopy to clipboardprint?
- <?php
- header("Content-type:text/html;charset=utf-8");
- ?>
<?phpheader("Content-type:text/html;charset=utf-8");?>
然后保存为UTF-8编码的文件即可。注意和方案B一样。注意用那些去除BOM的编辑器保存。否则还是会报错。
D.PHP+Mysql中文乱码解决方案
除了按方案C那样的做法外,还要在你的数据查询/修改/增加之前加入数据库编码。
view plaincopy to clipboardprint?
- <?php
- mysql_query('SET NAMES UTF8');
//接下来的就是查出数据或者修改,增加咯- ?>
<?phpmysql_query('SET NAMES UTF8');//接下来的就是查出数据或者修改,增加咯?>
注意这里的UTF8和之前的不一样。中间没有横线。
通过以上应该就能解决PHP中文乱码的问题了。呼呼~~
0 0
- 怎样解决PHP中文乱码问题
- 怎样解决PHP中文乱码问题
- 怎样解决PHP中文乱码问题
- 解决PHP中文乱码问题
- PHP - 解决中文乱码问题
- 解决php中文乱码问题
- 解决PHP中文乱码问题
- PHP 【解决】中文乱码问题
- PHP - 解决中文乱码问题
- 解决PHP中文乱码问题
- PHP - 解决中文乱码问题
- PHP解决中文乱码问题
- PHP - 解决中文乱码问题
- 解决php中文乱码问题
- 怎样解决Mysql中文乱码问题
- 怎样解决Android studio中文乱码问题
- PHP中文乱码 完美解决PHP中文乱码问题
- PHP中文乱码 完美解决PHP中文乱码问题
- 发送功率定义
- Practical Deep Text Learning
- java web环境搭建
- 工厂模式
- 韩信点兵
- 怎样解决PHP中文乱码问题
- android——倒计时实现
- sqlplus执行代码块 包含代码块的sql文件
- AWS和Azure的比较(2)
- Oracle同义词创建及其作用
- Linux命令大全
- 《FAQ:OpenCV Haartraining》——使用OpenCV训练Haar like+Adaboost分类器的常见问题
- c# 创建只接收消息的窗口
- (私人记录)CGAffineTransform常用方法介绍