php+Mysql中网页出现乱码的解决办法详解
$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" />
MySQL+PHP乱码原理与解决
◆ MySQL数据库默认的编码是utf8,如果这种编码与你的PHP网页不一致,可能就会造成MySQL乱码;
◆ MySQL中创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成MySQL乱码;
◆ MySQL创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成MySQL乱码;
◆ 用户提交页面的编码与显示数据的页面编码不一致,就肯定会造成PHP页面乱码;
◆ 如用户输入资料的页面是big5码, 显示用户输入的页面却是gb2312,这种100%会造成PHP页面乱码;
◆ PHP页面字符集不正确;
◆ PHP连接MySQL数据库语句指定的编码不正确。
注意:
很多人都怀疑MySQL版本不一致会导致乱码,相信看了本说明你就不会这样认为了。
平时你在某些网站看到的文字可能有几种编码, 如你看到一个繁体字,它有可能是big5编码,也有 可能是utf-8编码的,更有可能是gb码的,没错,也就是说有简体编码的繁体字,也有繁体编码的简体字,一定要了解这一点。
如果你是做一个简体编码的网页,编码定为GB2312,如果有香港和台湾地区的访客提交繁体的信息,就可能会造成乱码,解决方法:
将网站编码设为 utf-8,这样可以兼容世界上所有字符。
如果网站已经运作了好久,已有很多旧数据,不能再更改简体中文的设定,那么建议将页面的编码设为 GBK, GBK与GB2312的区别就在于:GBK能比GB2312显示更多的字符,要显示简体码的繁体字,就只能用GBK。
使用MySQL+PHP产生乱码的原因都了解得很清楚了,那么解决就不困难了。
MySQL+PHP产生乱码的解决办法:
如果安装MySQL的编码已不能更改,很多朋友是购买虚拟主机建立网站,无权更改MySQL的安装编码,这一关我们可以跳过,因为只要后面的步聚正确,一样能解决乱码问题。
修改数据库编码,如果是数据库编码不正确,可以在PHPmyadmin 执行如下命令:
ALTER DATABASE 'test' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
以上命令就是将test数据库的编码设为utf8。
修改表的编码:
ALTER TABLE 'category' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
以上命令就是将一个表category的编码改为utf8。
修改字段的编码:
ALTER TABLE 'test' CHANGE 'dd' 'dd' VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
以上命令就是将test表中dd的字段编码改为utf8。
如果是这种情况容易解决,只需检查下页面,修改源文件的charset即可。
这种情况也是修改页面charset即可。
在连接数据库的语句中。
mysql_connect('localhost','user','password'); mysql_select_db('my_db'); mysql_query("set names utf8;"); //select 数据库之后加多这一句
为了避免PHP页面乱码的发生,PHP页面开始第一句
header("content-type:text/html; charset=utf-8"); //强行指定页面的编码,以避免乱码
注意:照以上方法修改以后只能保证你新插入的数据不会乱码,举个例:如果你用户已提交的数据是BIG5,你却想通过以上方法改为可以在GB2312的网页正确显示是不可能的, 这种文字内码的变换只能通过另写程序来解决。
php+Mysql中网页出现乱码的解决办法详解的更多相关文章
- 基于ORA-12170 TNS 连接超时解决办法详解
		转自原文 基于ORA-12170 TNS 连接超时解决办法详解 1.开始----程序-----Oracle------配置和移植工具-----Net Manager----本地----服务命名---o ... 
- R中导入excel乱码的解决办法
		本文操作系统环境为win10,使用Rstdio. 要说明windows下在使用Rstdio的时候,在使用xlsx包,导入excel表乱码的解决办法. 1.我们先安装xlsx包 install.pack ... 
- mysql中连接失败2003错误解决办法
		在使用mysql数据库,新建连接时,会报2003-Can't connect to server on 'localhost'(10038)错误,原因主要是MYSQL服务没有启动起来,但是进入:计算机 ... 
- Keil µVision4 中出现中文乱码的解决办法
		首先得说一下,以前都没有遇到过类似的问题,但是看到有个同学曾经满篇的乱码那叫个心疼. 这里我所说的办法其实只是格式转换的问题,对于其他原因造成的,可能会在以后遇到的时候再来处理了.另外,在将代码文件转 ... 
- mysql中的内连接,外连接实例详解
		内连接: 只连接匹配的行左外连接: 包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行右外连接: 包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边 ... 
- mysql 中的外键key值的详解
		如果Key是空的, 那么该列值的可以重复, 表示该列没有索引, 或者是一个非唯一的复合索引的非前导列2. 如果Key是PRI, 那么该列是主键的组成部分3. 如果Key是UNI, 那么该列是一个唯 ... 
- PHP TCPDF ERROR: [Image] Unable to get image解决办法详解
		使用TCPDF输出pdf文件时,有时会直接显示pdf文件不可显示,仔细调试之下会报错TCPDF ERROR: [Image] Unable to get image.问题出现Image()函数中.第一 ... 
- HTTP 错误 500.19 - Internal Server Error解决办法详解
		最近在服务器端部署程序发现这个问题,HTTP 错误 500.19 - Internal Server Error,程序在本地跑是没有问题的.但是部署完,浏览程序就出现这个问题,今天这篇文章就是记录一下 ... 
- Jrebel实现tomcat热部署,遇到的问题以及解决办法,详解
		我的安装的详细过程: 下载Jrebel: https://github.com/ilanyu/ReverseProxy/releases/tag/v1.4 我的是winx64,所以选择如下的: 下载 ... 
随机推荐
- gcc扩展语法一:在表达式中的语句和声明
			在GNU C中包含在括号中的复合语句可以作为一个表达式.这就允许你在表达式中使用循环,switch和局部变量. 以前复合语句是包含在大括号中语句序列.在这种构造中,圆括号包围在大括号中.如下面的例子: ... 
- center  os  文件读写权限
			五.使用chmod和数字改变文件或目录的访问权限文件和目录的权限表示,是用rwx这三个字符来代表所有者.用户组和其他用户的权限.有时候,字符似乎过于麻烦,因此还有另外一种方法是以数字来表示权限,而且仅 ... 
- 【JAVA】学习笔记
			对程序员来说,学习一门新的语言,最开始的代码当然是hello world!下面我们从这段代码入手,一步一步来学习Java基础知识. class Hello{ public static void ma ... 
- vue入门: 实现选中并显示修改功能
			1.实现功能 2.工具 vue 3.代码 <!DOCTYPE html> <html lang="en"> <head> <meta ch ... 
- Modify the apache2 default document and home page on ubuntu (ubuntu下修改apache2默认目录和默认主页)
			Change the apache2 default website directory As we know, The apache2 default directory at /var/www/, ... 
- jQuery最重要的知识点
			1.各种常见的选择器.2.对于属性的操作.[重点] 2.1)获取或设置属性的值: prop(); 2.2 ) 添加.删除.切换样式: addClass/removeClass/toggleClass ... 
- 【windows中常用的服务概览和总结】
			#IIS 1)ftp 功能:1-1)FTP地址限制: 1-2)SSL加密: 1-3)目录浏览(虚拟目录): 1-4)身份验证:(基本,匿名): 1-5)授权规则: 1-6)用户隔离:用户名目录隔离:1 ... 
- 【c学习-12】
			/*枚举*/ #include void enumFunction(){ enum enum_var{"a","b",1,2}; enum{"c&qu ... 
- Python学习之魔法方法
			Python中会看到前后都加双下划线的函数名,例如 __init__(self),这类写法在Python中具有特殊的含义.如果对象使用了这类方法中的某一个,那么这个方法将会在特殊的情况下被执行,然而几 ... 
- Awakening Your Senses【唤醒你的感觉官能】
			Awakening Your Senses Give youself a test. Which way is the wind blowing? How many kinds of wildflow ... 
