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>

请问如何解决?谢谢!
...全文
457 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
有效的方法是编码都设成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
  • 打赏
  • 举报
回复
自己顶

81,091

社区成员

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

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