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

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

WBOY
Lepaskan: 2016-06-13 13:40:34
asal
901 orang telah melayarinya

关于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,显示到网页上就成乱码了

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan