我在java程序中下载一个页面,用的是BufferedReader,直接输出字符串,中文显示为乱码,在浏览器里,选择gb2312就会出现相同的乱码,而选择utf-8就会正常显示,那我应该怎么样才能在程序里得到正常的字符串呢?
解决方案 »
- java连接mysqlserver问题
- 【求助】为什么宽带连接后多播的recieve就阻塞呢
- 请教List<String[]>的排序问题
- int to String 问题
- 我想通过服务器配置个监听,后用一个Timer每个50分钟产生一个事件对数据库中的某张表进行删除不要数据要怎么做
- 我的网站开张了,散分了,进来提提建议
- 哪个大哥,有jbuilder 9 帮助文档
- 初学者几个问题,请大家看看帮忙
- 以前没用jbuilder,现在用感觉很好;编写时代码自动完成得快捷键是什么,请知道的朋友给一下!
- java的list排序问题
- 怎样创建当天的0时0分0秒一个date对象
- 请教:applet播放声音...异常
我这前是这样处理的,有些慢,不过最基础的办法就是这样,就是取编码过程,你可以在优化下。只要能知道正确的页面编码,就OK了。UTF-8用第一个分支就好了 if (strPageContent.indexOf("UTF-8") > 0
|| strPageContent.indexOf("utf-8") > 0) {
tmpStr = new String(strPageContent.getBytes("ISO8859-1"),
"UTF-8");
} else if (strPageContent.indexOf("GB2312") > 0
|| strPageContent.indexOf("gb2312") > 0) {
tmpStr = new String(strPageContent.getBytes("ISO8859-1"),
"GB2312");
} else if (strPageContent.indexOf("GBK") > 0
|| strPageContent.indexOf("gbk") > 0) {
tmpStr = new String(strPageContent.getBytes("ISO8859-1"),
"GBK");
}