Linux下mysql中文乱码问题

amo_njupt 2010-09-24 10:42:18
将windows下已开发好的工程打包部署到Linux时,显示的是乱码。在网上找了很多办法都没有解决,特发帖请教。
window下mysql的字符集如下:
mysql> show variables like '%char%';
+--------------------------+---------------
| Variable_name | Value
+--------------------------+---------------
| character_set_client | gbk
| character_set_connection | gbk
| character_set_database | utf8
| character_set_filesystem | binary
| character_set_results | gbk
| character_set_server | utf8
| character_set_system | utf8

Linux下mysql的字符集设置如下:
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
window下建的表和插入的数据如下:
DROP TABLE IF EXISTS `booktype`;
CREATE TABLE `booktype` (
`typeid` int(10) unsigned NOT NULL auto_increment,
`typename` varchar(45) NOT NULL,
PRIMARY KEY (`typeid`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;


INSERT INTO `booktype` (`typeid`,`typename`) VALUES
(1,'程序设计'),
(2,'外语学习'),
(3,'网络通信');

将上述数据拷贝到Linux下mysql中显示的却是乱码:
INSERT INTO `booktype` (`typeid`,`typename`) VALUES
-> (1,'....'),
-> (2,'....'),
-> (3,'....');
数据库连接如下:
value="jdbc:mysql://localhost:3306/bookshop?useUnicode=true&characterEncoding=gbk"/>
配置的字符过滤器如下:
<!-- 设定编码格式-->
<filter>
<filter-name>SetCharacterEncodingFilter</filter-name>
<filter-class>edu.njupt.filter.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>gbk</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>SetCharacterEncodingFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>

<filter-mapping>
<filter-name>SetCharacterEncodingFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>

请问如何解决?谢谢!
...全文
413 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
有效的方法是编码都设成uft8,都能用
回复
amo_njupt 2010-10-10
继续等高人
回复
24K純帥 2010-09-28
介个到linux下俺不会饿,实在不行再重建个数据库
回复
apchy 2010-09-28
你是在命令行下mysql>INSERT INTO 数据的吗,可能会输入乱码,你把insert语句写在一个文件,如1.sql,然后用命令导入mysql -uroot -proot database < 1.sql试试看,不然你装个客户端连接,或者phpmyqladmin看看,确人本身数据有没问题
回复
amo_njupt 2010-09-27
[Quote=引用 7 楼 timer705 的回复:]
统一用 gbk 或者 lant-1
[/Quote]
不管用,没人知道吗?
回复
timer705 2010-09-26
统一用 gbk 或者 lant-1
回复
阿_布 2010-09-26
在插入前执行一下:set names gbk; 试试
回复
amo_njupt 2010-09-26
[Quote=引用 2 楼 zhoupuyue 的回复:]
你在哪里看到的乱码?
[/Quote]
我用的是putty连的linux服务器,在putty窗口进入mysql后插入中文数据是乱码,在页面看到的也是乱码。
回复
bluemouse_2008 2010-09-25
将所有编码格式统一:工程的、页面的、js的、数据库的。。。
回复
zn85600301 2010-09-25
数据库里的是乱码?
回复
阿_布 2010-09-25
你在哪里看到的乱码?
回复
amo_njupt 2010-09-25
自己顶
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2010-09-24 10:42
社区公告
暂无公告