Maison > développement back-end > tutoriel php > 关于PHP操作MYSQL数据库,乱码的有关问题,高手达人们,看看帮忙解决一下

关于PHP操作MYSQL数据库,乱码的有关问题,高手达人们,看看帮忙解决一下

WBOY
Libérer: 2016-06-13 13:40:34
original
901 Les gens l'ont consulté

关于PHP操作MYSQL数据库,乱码的问题,高手达人们,看看帮忙解决一下
我的情况如下:
我的网页是GB2312编码的,我的数据库的编码是UTF8的,如果我想让数据库里的内容读到网页上,要加上mysql_query("set names gb2312") 这句话,可以解决乱码的问题,这样显示在网页上的就不是乱码了.



但是当我在网页中加入一条插入数据库内容的语句,如果我不加mysql_query("set names gb2312")这句话,他插入数据库的内容是乱码,因为数据库的编码是UTF8,网页中的内容是GB2312编码,所以他显示乱码

但是我加上mysql_query("set names gb2312")这句话后,加入数据库的内容就不会显示乱码

我不明白的是mysql_query("set names gb2312")这句话,可以解决插入到UTF8数据库解决汉字乱码的问题?

mysql_query("set names gb2312")这句话不是设置字符集为GB2312吗?为什么插入UTF8数据库里不会乱码?相反我不加这句话就会显示乱码呢?

高手们帮帮小弟吧

------解决方案--------------------
set names 是用来设置客户端的字符集,与服务端没关系,
set names gb2312 等于是插入之前告诉数据库我是以gb2312的编码进来的,数据库根据进来时的编码来处理它,如果不加这句,数据库就不知道它是以什么编码进来的,这样就出现乱码了

同样道理 查询的时候,用set names gb2312 告诉数据库,我想得到gb2312编码的数据,你给我返回gb2312编码数据吧,数据库就给出gb2312的数据了,如果不加,给出的就是utf-8,显示到网页上就成乱码了

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal