mysql字符集问题(关于GB2312和UTF-8,韩文、日文的处理)

时间:2023-01-05 16:07:29
我的页面是GB2312的,数据库是UTF-8,

从页面提交来的数据,转换为UTF-8:
iconv("GB18030","UTF-8//IGNORE", $string);

但是发现,中文可以正常转换,但是当转换韩文或日文是就不行
“ファンタスティポ”、“이선일”

转换后在页面中打印,再把编码调整为UTF-8,可以在页面中显示,但是在数据库查询是确查询不成功
SELECT * 
FROM tablename
WHERE field1='$string'

查询的结果总是空的,但是在程序中把查询语句打出来再到phpMyAdmin里查,又是可以的。


请问DX们,这种问题如何解决呢?

15 个解决方案

#1


多语言不采用这样的做法,,一般做多语言目录。。

#2


问题在于为什么GB2312转到UTF-8,日韩文查询就不行了?

#3


数据库看看里面是UTF-8什么类型的  转成UTF-8 unicode试试

#4


请问楼上,语句怎么写呢?

iconv('GB18030', 'utf-8 unicode', ... )吗?

#5


不是说把字符转换了  而是说把数据库类型转成'utf-8 unicode'  在phpmyadmin转
这样你查询和存储的时候应该就不会有问题了

#6


数据库类型是utf-8 unicode没错,是不是还有其他原因呢?

#7


把页面的编码也改为utf8就没有这些问题了!!!

#8


phpmyadmin的页面编码就是utf8

#9


话说……日文和韩文也有gbk么???
如果他们没有gbk,你怎么转成utf-8呢?
所以还是统一utf8吧。

#10


顶楼上滴。。。

#11


但页面是GBK的,而且这些字符在GBK的页面里也可以正常显示出来

#12


gb2312是中文编码。你还是全部统一成为utf8好用。

#13


引用 7 楼 qngzh 的回复:
把页面的编码也改为utf8就没有这些问题了!!!

正解

#14


是不是说GB的页面写的日韩字符,提交后会丢失呢?

#15


引用 14 楼 setimouse 的回复:
是不是说GB的页面写的日韩字符,提交后会丢失呢?

你可以自己尝试一下呀.
多语言的时候,尽量用通用的utf8编码

#1


多语言不采用这样的做法,,一般做多语言目录。。

#2


问题在于为什么GB2312转到UTF-8,日韩文查询就不行了?

#3


数据库看看里面是UTF-8什么类型的  转成UTF-8 unicode试试

#4


请问楼上,语句怎么写呢?

iconv('GB18030', 'utf-8 unicode', ... )吗?

#5


不是说把字符转换了  而是说把数据库类型转成'utf-8 unicode'  在phpmyadmin转
这样你查询和存储的时候应该就不会有问题了

#6


数据库类型是utf-8 unicode没错,是不是还有其他原因呢?

#7


把页面的编码也改为utf8就没有这些问题了!!!

#8


phpmyadmin的页面编码就是utf8

#9


话说……日文和韩文也有gbk么???
如果他们没有gbk,你怎么转成utf-8呢?
所以还是统一utf8吧。

#10


顶楼上滴。。。

#11


但页面是GBK的,而且这些字符在GBK的页面里也可以正常显示出来

#12


gb2312是中文编码。你还是全部统一成为utf8好用。

#13


引用 7 楼 qngzh 的回复:
把页面的编码也改为utf8就没有这些问题了!!!

正解

#14


是不是说GB的页面写的日韩字符,提交后会丢失呢?

#15


引用 14 楼 setimouse 的回复:
是不是说GB的页面写的日韩字符,提交后会丢失呢?

你可以自己尝试一下呀.
多语言的时候,尽量用通用的utf8编码