nutch+mysql gb2312网页源代码中文乱码

问题描述:

将nutch爬的网页源代码存在mysql中,网页编码为gb2312的网页中文乱码,其他编码暂未发现问题。因为nutch对爬下的网页源代码content不作任何处理,仅仅保存,而我的mysql编码设置的为utf-8,所以会显示乱码。

现在需要处理网页源代码,取出指定数据,那么java程序如何将gb2312中文乱码的网页源代码转化为非乱码。

解决:

其实采用ResultSet的getBytes方法即可。

public void getResoucePage() throws Exception{
		String sql = "select * from webpage";
		ResultSet rs = stmtSelect.executeQuery(sql);
		while(rs.next()){
			byte[] pageByte = rs.getBytes("content");
			String pageString = new  String(pageByte, "gb2312");
			getPageInfo(pageString);
		}
		rs.close();
		stmtSelect.close();
		conn.close();
	}

说明:采用字节读取网页源代码,再指定编码为gb2312解码即可得到非乱码的网页源代码,剩下想怎么处理就怎么处理了。

(转载请注明,更多详见:http://blog.csdn.net/hwwn2009/article/details/41960043

时间: 2024-11-05 18:52:45

nutch+mysql gb2312网页源代码中文乱码的相关文章

解决openfire在使用MySQL数据库后的中文乱码问题(转)

openfire是一个非常不错的IM服务器,而且是纯Java实现,具有多个平台的版本,他的数据存储可以采用多种数据库,如MySQL,Oracle等. 在实际使用时大家遇到最多的就是采用MySQL数据库后的中文乱码问题,这个问题十分有趣,而且从现象上可以看出openfire内部的一些机制. 实际问题是这样的:首先启动openfire服务器,然后利用客户端或直接登录到后台新建一个帐户,为该帐户指定一些中文的属性,如姓名等.如果不重启服务器,你永远不会觉得有什么不对的地方,因为所有的中文显示都是正常的

[转]mysql导入导出数据中文乱码解决方法小结

本文章总结了mysql导入导出数据中文乱码解决方法,出现中文乱码一般情况是导入导入时编码的设置问题,我们只要把编码调整一致即可解决此方法,下面是搜索到的一些方法总结,方便需要的朋友. linux系统中 linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题. 解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上--default-character-set=utf8, 例如下面的代码: 代码如下: mys

PHP+MySQL存储数据出现中文乱码的问题

PHP+MySQL出现中文乱码的原因: 1. MYSQL数据库的编码是utf8,与PHP网页的编码格式不一致,就会造成MYSQL中的中文乱码. 2. 使用MYSQL中创建表.或者选择字段时设置的类型不是utf8,而网页编码不是utf8,也可能造成MYSQL中文乱码. 3. PHP页面的字符集与数据库的编码不一致. 4. PHP连接MYSQL数据库,操作是设定的语句指定的编码和页面编码,PHP页面编码不一致. 5. 用户提交的HTML页面编码,和显示数据的页面编码不一致 ,就肯定会造成PHP页面乱

mysql命令行以及mysql workbence查询结果中文乱码的解决方法

最近正在学习mysql,安装环境是windows server 2003 32位操作系统+mysql 5.1.47同时也安装了mysql命令行以及mysql workbench这里是test数据库create  table fortest(empno int auto_increment,empname nvarchar(20) not null,constraint pk_fortest primary key(empno))default charset=utf8;然后插入了一条数据set

MySQL命令窗口出现中文乱码的解决方法

查询表语句的时候,出现了中文乱码,但是用Navicat for MySQL查看的时候却是正常的,字符集都是设置的utf-8,如下图所示:     其实上大学学习java的时候也遇到了中文乱码但是却没有去研究,现在不能放任不管了,经过多方查询终于知道了解决方法    可以看到,现在是使用utf8字符编码来显示中文数据的,但是因为操作系统是中文操作系统,默认使用的字符集是GB2312,所以需要把输出窗口使用的字符编码改成gb2312才能够正常显示中文.使用如下的命令设置输出窗口使用的字符编码: 之后

mysql导入导出数据中文乱码解决方法小结

inux系统中 linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题. 解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上--default-character-set=utf8, 例如下面的代码: 复制代码 代码如下: mysqldump -uroot -p --default-character-set=utf8 dbname tablename > bak.sql 那么导入数据的时候也要使用--

Mybatis + Mysql 插入数据时中文乱码问题

近日跟朋友一起建立一个项目,用的是spring+mybatis+mysql. 今天碰到一个mybatis向mysql中插入数据时,中文显示为'???'的问题,拿出来说下. 对于数据库操作中出现的中文乱码,一般有两种情况: 数据库本身设置 连接数据库时,jdbc的编码设置 对于第一种情况,可以查看自身的mysql设置: show variables like '%character%' 显示指定编码可解决问题: <!-- 1. 数据源 : DriverManagerDataSource -->

php 保存到mysql数据库中的中文乱码

近期又php项目,乱码是个头痛的问题 解决方法: 1,php 文件中 添加 header(“Content-Type: text/html; charset=utf-8"); 2,需要做数据库操作的php程序前加mysql_query("set names '编码'");,编码和php编码一致,如果php编码是gb2312那mysql编码就是gb2312,如果是utf-8那 mysql编码就是 utf8,这样插入或检索数据时就不会出现乱码了 mysql_query("

MySQL使用cmd查询 中文乱码

CMD查看MYSQL数据库表的时候发现,无法插入中文数据,查出来的中文也都是乱码. 方法:在mysql安装文件里找到my.ini文件,添加:default-character-set=utf8 修改以后的效果如下: [client] port=3306 default-character-set=utf8 [mysql] default-character-set=utf8 修改好以后通过cmd登陆mysql :mysql -u root -p 查看编码格式:show variables lik