将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>
请问如何解决?谢谢!