mysql中文乱码

tjficcbw 2010-04-25 04:56:07
数据库原来有中文的数据不是乱码,我的程序插入的是乱码,平台 myeclipse8.5编码为utf8
数据库也是utf8
...全文
98 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
zuoguodang 2010-04-28
  • 打赏
  • 举报
回复
还没有解决?楼主
tjficcbw 2010-04-28
  • 打赏
  • 举报
回复
虽然问题没解决但我还是谢谢大家,结贴!
tjficcbw 2010-04-28
  • 打赏
  • 举报
回复
System.out.println("在插入执行SQL语句前中文正常");
huaye 2010-04-27
  • 打赏
  • 举报
回复
可以写个输出语句,看下是那个地方出了问题
cjf068 2010-04-25
  • 打赏
  • 举报
回复
很显然是插入的时候不是utf-8编码啊
tjficcbw 2010-04-25
  • 打赏
  • 举报
回复
回各位,我的程序utf8,我的数据库安装时选择utf8,且原有备份文件里有中文正常显示,只是我新插入的中文是乱码,
zuoguodang 2010-04-25
  • 打赏
  • 举报
回复
把my.ini改了,把字符集改成gbk就好了
CreazyJava 2010-04-25
  • 打赏
  • 举报
回复
gbk试试~~
cjf068 2010-04-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ladybirds2008 的回复:]
建表时就可以create table xxx(..) charset=utf8;同意这个做法,mysql就是这样的,你再创建表时候如果没有指定编码,就是默认的编码,所以你在库中直接sql添加数据是可以加进中文的,但在程序中插入数据时候就是???,对吧。。这个是常见的问题。。另外也可能跟mysql版本有关,但是几率很小,基本确定是建表时候没有指定统一编码。。。
[/Quote]
安装数据库的时候指定为utf-8了 还有这个必要吗?
hack517 2010-04-25
  • 打赏
  • 举报
回复
可以通过char[]数组来转换。。
例如:
char[] stupassword = passText1.getPassword();

String tt=new String(stupassword);
欢乐极客 2010-04-25
  • 打赏
  • 举报
回复
首先,数据库编码方式选为UTF-8
其次,MyEclipse中你的项目编码改为UTF-8
再次,插入乱码,一般是网络传输中编码方式不一致,客户端的内容传入数据库中,就可能出现问题。

byte[] bs = str.getBytes();
str = new String(bs, newCharset);


看看这样能不能解决。

PS:这种方法十分机械,明显的问题是会影响效率。建议LZ找到根源,实在不行先把数据导出来,重新安装MySQL。但记得卸载后要去删除Application Data文件夹中的内容,否则可能出现密码设置不了的问题。
sm521 2010-04-25
  • 打赏
  • 举报
回复
在你数据库的安装路径下
找到MySQL\MySQL Server 5.0\my.ini
打开然后搜索
default-character-set=**
改成GBK就行了
然后重启下MYSQL就可以了
huaye 2010-04-25
  • 打赏
  • 举报
回复
看下你的页面编码都设置为UTF-8了吗
ladybirds2008 2010-04-25
  • 打赏
  • 举报
回复
配置文件内 写这个 "在java程序中url写成jdbc:mysql://0.0.0.0:3306/try?useUnicode=true&characterEncoding=utf8"是没有用的。。。你可以试验一下看看。。只能是给表指定统一编码,可能mysql版本不同,会导致你重新建表设定统一编码才会,解决问题,,,你可以试验下证明我的说法。。。good luck。。。
ladybirds2008 2010-04-25
  • 打赏
  • 举报
回复
建表时就可以create table xxx(..) charset=utf8;同意这个做法,mysql就是这样的,你再创建表时候如果没有指定编码,就是默认的编码,所以你在库中直接sql添加数据是可以加进中文的,但在程序中插入数据时候就是???,对吧。。这个是常见的问题。。另外也可能跟mysql版本有关,但是几率很小,基本确定是建表时候没有指定统一编码。。。
zfq642773391 2010-04-25
  • 打赏
  • 举报
回复
那就是你写的程序的问题了
看看你的程序插入数据时编码方式是否正确
tjficcbw 2010-04-25
  • 打赏
  • 举报
回复
1楼和2楼,没看我说的问题,只是我添加的是乱码,原数据库的记录是正常的,
Altman2010 2010-04-25
  • 打赏
  • 举报
回复
安装MySQL时选择编码用gb2312就好了!
cooljia 2010-04-25
  • 打赏
  • 举报
回复
1.在mysql中表的字符集设置为utf8(不是这种格式可以将数据导出为utf8,然后再转换为gb2312),建表时就可以create table xxx(..) charset=utf8;
2.在java程序中url写成jdbc:mysql://0.0.0.0:3306/try?useUnicode=true&characterEncoding=utf8

62,615

社区成员

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

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