PHP写入数据库中文乱码问题
声明:本篇文章来自http://www.jb51.net/article/30123.htm
PHP页面转UTF-8编码问题
1.在代码开始出加入一行:
header("Content-Type: text/html;charset=utf-8");
2.PHP文件编码问题
点击编辑器的菜单:“文件”->“另存为”,可以看到当前文件的编码,确保文件编码为:UTF-8,
如果是ANSI,需要将编码改成:UTF-8。
3.PHP文件头BOM问题:
PHP文件一定不可以有BOM标签
否则,会出现session不能使用的情况,并有类似的提示:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent
这是因为,在执行session_start() 的时候,整个页面不能有输出,但是当由于前PHP页面存在BOM标签,
PHP把这个BOM标签当成是输出了,所以就出错了!
所以PHP页面一定要删除BOM标签
删除这个BOM标签的方法:
1.可以用Dreamweaver打开文件,并重新保存,即可以去除BOM标签!
2.可以用EditPlus打开文件,并在菜单“首选项”->“文件”->"UTF-8标识",设置为:“总是删除签名”,
然后保存文件,即可以去除BOM标签!
4.PHP以附件形式保存文件的时候,UTF-8编码问题:
PHP以附件形式保存文件,文件名必须是GB2312编码,
否则,如果文件名中有中文的话,将是显示乱码:
如果你的PHP本身是UTF-8编码格式的文件,
需要将文件名变量由UTF-8转成GB2312:
iconv("UTF-8", "GB2312", "$filename");
利用程序来实例字符截取方法
function utf8_substr($str,$len)
{ for($i=0;$i<$len;$i++) { $temp_str=substr($str,0,1); if(ord($temp_str) > 127){ $i++; if($i<$len){ $new_str[]=substr($str,0,3); $str=substr($str,3); } }else { $new_str[]=substr($str,0,1); $str=substr($str,1); } } return join($new_str);
}
MYSQL数据库使用UTF-8编码的问题
1.用phpmyadmin创建数据库和数据表
创建数据库的时候,请将“整理”设置为:“utf8_general_ci” 或执行语句:
CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
创建数据表的时候:如果是该字段是存放中文的话,则需要将“整理”设置为:“utf8_general_ci”,
如果该字段是存放英文或数字的话,默认就可以了。
相应的SQL语句,例如:
CREATE TABLE `test` (
`id` INT NOT NULL ,
`name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM ;
2.用PHP读写数据库
在连接数据库之后:
$connection = mysql_connect($host_name, $host_user, $host_pass);
加入两行:
mysql_query("set character set 'utf8'");//读库
mysql_query("set names 'utf8'");//写库
//其实读写都可以只加入
mysql_query("set names 'utf8'");
就可以正常的读写MYSQL数据库了。
用的appserv-win32-2.5.10做的环境,装这个包的时候用默认的utf8编码。
在写数据库连接文件时,写成:
$conn = mysql_connect("$host","$user","$password");
mysql_query("SET NAMES 'UTF8'");
mysql_select_db("$database",$conn);
然后在做页面时,注意这句:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
这样不管输入数据库的中文,还是页面显示,就都正常了。
在DW CS4版里,默认生成的也是utf8页面。
同样的,如果一开始写数据库连接文件时写成: mysql_query("SET NAMES 'GBK'");
那页面也要相应变成:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
PHP写入数据库中文乱码问题相关推荐
- 前端项目写入数据库中文乱码
项目场景: 前端项目和MySql数据库的联调 问题描述 在进行前端项目向MySql数据库传入数据时,中文乱码,但是字母和数字不乱码. 原因分析: 错误的配置: 正确的配置: 原因:没有配置字符集. u ...
- mysql 通过echo的方式写入数据库 中文乱码解决方案
echo "set names utf8;insert into xxx (path, sn, time, flag) values ('$wav', '$sn', '$secs', 'op ...
- php 写入mysql 乱码,php写入mysql中文乱码的实例解决方法
php写入mysql中文乱码的实例解决方法 php写入mysql出现中文乱码的解决办法是:在建立数据库连接之后,将该连接的编码方式改为中文. 代码如下: $linkID=@mysql_connect( ...
- springMVC保存数据到mysql数据库中文乱码问题解决方法
springMVC保存数据到mysql数据库中文乱码问题解决方法 参考文章: (1)springMVC保存数据到mysql数据库中文乱码问题解决方法 (2)https://www.cnblogs.co ...
- Mybatis插入MySQL数据库中文乱码
Mybatis插入MySQL数据库中文乱码 在dataSource.properties配置文件中设置useUnicode=true&characterEncoding=utf-8编码即可. ...
- PHP——PHP读取MySQL数据库中文乱码解决方案
问题描述 PHP读取MySQL数据库中文乱码 解决方案 静态页面 <head> <metahttp-equiv="Content-Type"content=&q ...
- php连接中文数据库乱码问题,如何解决php的数据库中文乱码问题
php数据库中文乱码的解决办法:1.在HTML代码中的文件头中加入charset属性:2.在php代码的开始部分加入代码"charset=utf-8":3.数据库中表字段中存储中文 ...
- php写入文本乱码,如何解决PHP用fwrite写入文件中文乱码的问题
如何解决PHP用fwrite写入文件中文乱码的问题 发布时间:2020-07-15 13:52:07 来源:亿速云 阅读:220 作者:Leah 这期内容当中小编将会给大家带来有关如何解决PHP用fw ...
- php查询mysql数据库乱码_PHP怎样处理查询MySQL数据库中文乱码?_后端开发
PHP如何处理查询MySQL数据库中文乱码? 1.将MySQL数据库默许的编码是UTF-8: 2.在MySQL中建立表时,将字符集设置为UTF-8: 3.在PHP中查询数据之前,将数据库编码设置为UT ...
最新文章
- 设计模式 — 行为型模式 — 责任链模式
- HTML5前端常见攻击方式案例讲解!
- 求一个向量变换为另一个向量的矩阵_OpenGL里旋转等变换矩阵为什么是4x4的矩阵...
- Java读取HttpServletRequest的post数据流
- C语言图像处理二值图细化,Visual C 实现二值图像处理
- linux c创建文件错误的是,在linux下创建一个类怎么出现会出现这种错误,我感觉是没有错误的,那位高手过来看看...
- webloigc12服务启动不了_weblogic启动不能锁定AdminServer.lok的故障处理
- 浅谈C++物理设计:实用宏
- 从宠物浴液做一个O2​O项目的设想
- 几个通用有限元软件简介
- art-记一次提取mmd模型到max和unity
- sql面试题 查询学过“叶平”老师所教的所有课的同学的学号
- 顶会速递 | ICLR 2020录用论文之强化学习篇
- java 日期加7天_java – 如何检查日期是否超过七天
- 使用IPMi获取服务器的硬件信息,如风扇转速、cpu等
- 【数据结构】树与树的表示、二叉树存储结构及其遍历、二叉搜索树、平衡二叉树、堆、哈夫曼树与哈夫曼编码、集合及其运算
- 小马的白痴日常2019.12.20
- Axure RP 9 基础教程
- HTML5+CSS3+JS小实例:仿制网易云音乐网站的轮播图
- com.googlecode.genericdao