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

Java工程的编码是GBK,MYSQL数据库用的也是gbk,用的Hibernate连接池。在Windows系统下能正常运行,部署到Linux系统下查询条件如果有中文就不行... Java工程的编码是GBK,MYSQL数据库用的也是gbk,用的Hibernate连接池。在Windows系统下能正常运行,部署到Linux系统下查询条件如果有中文就不行了,有英文可以,向数据库里存数据的话,中文全部变成?
我知道是编码问题,但具体应该怎么处理呢,求指教啊~~~
展开
 我来答
104450
2012-06-27 · TA获得超过245个赞
知道小有建树答主
回答量:314
采纳率:100%
帮助的人:167万
展开全部
根据你的问题,数据库不在自己手边。
那首先要调查清楚,数据表的编码,看清,不是数据库,是表,表的字符集编码。
然后往前顺。
然后再java程序中转码,保证写到sql中的数据是以该数据表所用的字符集编码的就好了。

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

这些地方经常会跟之后的系统编码不一致,所以在这些地方使用字符串数据的时候,就要转码。
资源文件,可以用文本工具保存成需要的编码。
对于request中的数据,可以在正式处理之前加
过滤器。
对于别的数据库,可以设一个专门的过滤类来转码。
百度网友489295667
2012-07-01 · TA获得超过2367个赞
知道小有建树答主
回答量:1471
采纳率:80%
帮助的人:304万
展开全部
出现???,linux系统的字符集,应该是iso-8859-1。
如果你的项目是j2se项目的话,执行java命令时,可以指定参数,
java -Dfile.encoding=GBK XXX
如果是,j2ee项目的话,建议设置,字符集过滤器。
两外,指定Hibernate配置中mysql的url地址的字符集。
追问
我的项目是j2ee的,指定Hibernate配置中mysql的url地址的字符集?指定为gbk么?
追答
试试,指定mysql,的url地址的字符集为gbk,
jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=gbk
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
出门在外_1
2012-06-26 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:76%
帮助的人:5921万
展开全部
在shell界面使用mysql -e "这边放查询的语句"
比如:
#mysql -e "select * from database.table where name ='查询中文姓名'"
追问
不太方便,因为机器是别人的~从工程里能直接搞定么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kid_jy
2012-06-26 · TA获得超过793个赞
知道小有建树答主
回答量:1362
采纳率:0%
帮助的人:1277万
展开全部
linux默认字符集是utf-8的 把mysql的字符集和项目编码也设置成utf-8吧
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
song1102501
2012-06-26
知道答主
回答量:7
采纳率:0%
帮助的人:1.1万
展开全部
可以设置数据库的编码格式,你网上查下
追问
如果不设数据库编码呢,比如只从项目入手,得怎么转码?因为服务器在别人那里,不方便总去弄,希望能改好项目后直接部过去~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式