Linux系统下MYSQL数据库中文数据乱码问题

2024-11-17 11:00:06
推荐回答(5个)
回答(1):

根据你的问题,数据库不在自己手边。
那首先要调查清楚,数据表的编码,看清,不是数据库,是表,表的字符集编码。
然后往前顺。
然后再java程序中转码,保证写到sql中的数据是以该数据表所用的字符集编码的就好了。

乱码出现在不同部分的通信之间
一个系统中,通常是在显式输入中文的地方发生转码错误。
比如,servlet处理从浏览器传来的数据的时候,
从资源文件读取数据的时候。
在程序中显式地硬编码字符串中文字面值的时候。
从别人的数据库读取数据的时候。

这些地方经常会跟之后的系统编码不一致,所以在这些地方使用字符串数据的时候,就要转码。
资源文件,可以用文本工具保存成需要的编码。
对于request中的数据,可以在正式处理之前加
过滤器。
对于别的数据库,可以设一个专门的过滤类来转码。

回答(2):

出现???,linux系统的字符集,应该是iso-8859-1。
如果你的项目是j2se项目的话,执行java命令时,可以指定参数,
java -Dfile.encoding=GBK XXX
如果是,j2ee项目的话,建议设置,字符集过滤器。
两外,指定Hibernate配置中mysql的url地址的字符集。

回答(3):

在shell界面使用mysql -e "这边放查询的语句"
比如:
#mysql -e "select * from database.table where name ='查询中文姓名'"

回答(4):

linux默认字符集是utf-8的 把mysql的字符集和项目编码也设置成utf-8吧

回答(5):

可以设置数据库的编码格式,你网上查下