mysql乱码问题———如何统一字符集?

fuyueyue 2009-03-26 01:22:02
RT

虽然我知道这是很老的问题,但在从网上查的始终没有作用。只能请教各位了。

我现在的直接登mysql和用navicat登都能正常读写中文数据。

所做的程序读取已经存在的中文数据也没有问题,可是从程序中将中文数据存入mysql中,就会显示成????

应该还是字符集的问题,所以我想知道怎么去统一java与mysql的字符集。
...全文
208 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lin_eric 2009-03-26
  • 打赏
  • 举报
回复
1.
修改mysql配置文件my.ini中的字符集如
default-character-set = gbk
character_set_server = gbk


2.
重启mysql服务器
(在dos命令行中敲net stop mysql5(关闭))
net start mysql5 重启
3.
set names "gbk";

dm520 2009-03-26
  • 打赏
  • 举报
回复
全部改成utf-8 最好
fuyueyue 2009-03-26
  • 打赏
  • 举报
回复
问题解决了,我更改了my.ini中的default-character-set = gb2312
然后 String url = "jdbc:mysql://localhost:3306/LibraryManagementSystem?useUnicode=true&characterEncoding=GB2312";
就可以了,谢谢各位了!
:-)
KingZChina 2009-03-26
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 fuyueyue 的回复:]
抱歉那,可能是我没说明白,我的问题是java程序与mysql之间存在乱码
程序读取中文数据时正常,但是插入的中文数据就是问号
[/Quote]
我明白你的意思 我遇到的问题就是页面获得的中文数据没问题 放到数据路里就是???问好
fuyueyue 2009-03-26
  • 打赏
  • 举报
回复
抱歉那,可能是我没说明白,我的问题是java程序与mysql之间存在乱码
程序读取中文数据时正常,但是插入的中文数据就是问号
fuyueyue 2009-03-26
  • 打赏
  • 举报
回复
不是,我的问题是java编写的程序向mysql写入中文数据时出现的是一堆????
而读取中文数据时就正常
mysql用控制台现在读取 ,写入数据都是正常的

java读取的时候是要对数据进行转换吗?
KingZChina 2009-03-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 fuyueyue 的回复:]
我都试过了,还是不行。
现在用控制台登陆也是???
用navicat查看是正常的
用程序存入的还是????????
[/Quote]
我跟你说的方法不行? 我遇到的问题是和你一样的啊 我的都解决了! 你每种汉字编码都试了吗? 你是不是搞错编码了?
summily 2009-03-26
  • 打赏
  • 举报
回复
楼上我可能说错了 其实不用重装 有个配置工具 在安装目录 重新配置一下
summily 2009-03-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 fuyueyue 的回复:]
我都试过了,还是不行。
现在用控制台登陆也是???
用navicat查看是正常的
用程序存入的还是????????
[/Quote]

实在不行就把mysql卸载了 重新安装 注意安装过程选择正确的字符编码
summily 2009-03-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 long9299 的回复:]
1.
修改mysql配置文件my.ini中的字符集如
default-character-set = gbk
character_set_server = gbk


2.
重启mysql服务器
(在dos命令行中敲net stop mysql5(关闭))
net start mysql5 重启
3.
set names "gbk";

楼主试下
[/Quote]

正解

fuyueyue 2009-03-26
  • 打赏
  • 举报
回复
我都试过了,还是不行。
现在用控制台登陆也是???
用navicat查看是正常的
用程序存入的还是????????
KingZChina 2009-03-26
  • 打赏
  • 举报
回复
点“开始”->所有程序->Mysql->Mysql server instance config wizard 然后一步一步重新配置你的mysql服务

当配置到选择编码的时候 第三条 Manual Selected Default Character set/collation 然后在下拉列表框里选择你应该选的编码 配置完成 这样你的问题就解决了,我遇到过一样的问题
moolf 2009-03-26
  • 打赏
  • 举报
回复
MySQL Server Instance Config Wizard在这个程序中去配置字符编码,配置成gbk然后你的java如果是别的编码那么在连接或是插入的时候在转换下,如果把masql配置成utf8也会乱码,在mysql中输入的时候也会乱码。我在配置文件中也改过把默认的编码改成gbk但是不起左右在MySQL Server Instance Config Wizard中就可以了。
long9299 2009-03-26
  • 打赏
  • 举报
回复
1.
修改mysql配置文件my.ini中的字符集如
default-character-set = gbk
character_set_server = gbk


2.
重启mysql服务器
(在dos命令行中敲net stop mysql5(关闭))
net start mysql5 重启
3.
set names "gbk";

楼主试下
long9299 2009-03-26
  • 打赏
  • 举报
回复
mysql字符集修改以后,对已经插入的表不起作用的,它们还是修改之前的字符集。
tanqimin 2009-03-26
  • 打赏
  • 举报
回复
呵呵~~帮顶~~~~

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧