注册 登录
编程论坛 J2EE论坛

请问MySQL里是不是也需要改一下中文编码啊

susan001983 发布于 2007-09-17 13:59, 1658 次点击
我用的是MySQL数据库,我在程序中也用了转码,显示中文是正确的,数据库中却是乱码。
请问MySQL里是不是也需要改一下中文编码啊?
16 回复
#2
风月_无边2007-09-17 14:22
mysql本來是latin,不支持中文﹐所以需要改﹗
#3
susan0019832007-09-17 14:38
那在哪里改呢?
#4
Gramary2007-09-17 14:48
以下是引用susan001983在2007-9-17 14:38:31的发言:
那在哪里改呢?

不用改
` 你用的是Hibernate吧``
只要你在那个Hibernate.xml配置文件中加上

jdbc:mysql://127.0.0.1:3306/数据库名称?useUnicode=true&characterEncoding=gbk
这样就可以了
转码也不用了``你试试看``

#5
susan0019832007-09-17 15:12
数据库里出现了很多问号。
????????????????
#6
Gramary2007-09-17 15:33

你的页面编码是多什么```
是GBK??
你的数据库表的编码是什么呢??

#7
susan0019832007-09-17 15:35

页面是GB2312

数据库表的编码从哪看啊?

#8
susan0019832007-09-17 15:36
这两个都用UTF-8行吗?
#9
Gramary2007-09-17 15:43

你把数据库表的编码改成latin1

#10
Gramary2007-09-17 15:44

一般建表的默认编码是latin1

#11
susan0019832007-09-17 15:49
我不知道在哪里改。

我把页面中的编码也都改成GBK了,还是出现乱码。
#12
susan0019832007-09-17 15:56

是在这里吗?
只有本站会员才能查看附件,请 登录

[此贴子已经被作者于2007-9-17 15:58:00编辑过]

#13
Gramary2007-09-17 15:58

CREATE TABLE `function` (
`FunctionID` int(11) NOT NULL auto_increment,
`FunctionName` varchar(20) default NULL,
`Description` varchar(100) default NULL,
`FunctionURL` varchar(100) default NULL,
PRIMARY KEY (`FunctionID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1; //创建表格的时候可以这样设置编码,你现在重新按我这个格式在建一下表
如果这样还是不行,你就改一下数据库编码
C:\Program Files\MySQL\MySQL Server 4.1\my.ini //这是我MYSQL的安装路径
你找到你的MYSQL安装路径下的 my.ini 这个文件,然后打开
找到
# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=latin1 //这里可以设置数据库编码,你可以改成 gbk 最好是用小写

#14
枫飘天涯2007-09-17 16:04

肯定还是编码的问题  试试
比如你用request取到变量名字是NAME
NAEM=new string (name.getbyte(ISO8859_1),"GBK");
这样转化一下试试 我在SQL里面这样就行 
不知道 MYSQL如何

#15
susan0019832007-09-17 16:14
Gramary 的:

MySQL里创建数据库太麻烦,我选择的后一种做法,结果还是不行。



枫飘天涯的:

你的方法我不太明白。这样做启不是每一个取到的值都要转一遍吗?
#16
Gramary2007-09-17 16:28

设置完数据库编码是要重起MYSQL服务的``
或者你重起电脑也行`
你用的是什么图形编辑工具啊
我怎么没见过`
枫飘天涯 : 说的那种方法是可以,就是麻烦,不管是插入还是查询都要进行转码```

#17
yanwu15152007-11-19 16:09
在操作数据库之前把数据的编码方式改了不就行了?加上:request.setCharacterEncoding("gb2312");
1