public static void main(String[] args) throws Exception {
FileWriter fw = new FileWriter("text.txt");
PrintWriter fout = new PrintWriter(fw);
URL url = new URL("http://www.google.com/search?q=phone&hl=en&lr=&newwindow=1&start=0&sa=N");
URLConnection URLConn = (HttpURLConnection)url.openConnection();
URLConn.setRequestProperty("User-agent","IE/6.0");
BufferedReader br = new BufferedReader(new InputStreamReader(URLConn.getInputStream()));
String s,temps = null;
while((s = br.readLine()) != null) {
System.out.println(s);
fout.println(s);
fout.flush();
}
fout.close();
fw.close();上面这段程序读到的页面源文件中的中文字符都编码成&#加5位的数字,从源文件中看到它的编码方式是charset=ISO-8859-1,本人也在网上找了很多关于ISO-8859-1转换gb2312的方法,但都无法实现正确的转换,希望高人能够指点迷津 谢谢附:网上找的ISO-8859-1转换gb2312的方法,但我用了不行:
public class Convert {
/** 把ISO-8859-1码转换成GB2312
*/
public static String ISOtoGB(String iso){
String gb;
try{
if(iso.equals("") || iso == null){
return "";
}
else{
iso = iso.trim();
gb = new String(iso.getBytes("ISO-8859-1"),"GB2312");
return gb;
}
}
catch(Exception e){
System.err.print("编码转换错误:"+e.getMessage());
return "";
}
}
}
谢谢 谢谢
FileWriter fw = new FileWriter("text.txt");
PrintWriter fout = new PrintWriter(fw);
URL url = new URL("http://www.google.com/search?q=phone&hl=en&lr=&newwindow=1&start=0&sa=N");
URLConnection URLConn = (HttpURLConnection)url.openConnection();
URLConn.setRequestProperty("User-agent","IE/6.0");
BufferedReader br = new BufferedReader(new InputStreamReader(URLConn.getInputStream()));
String s,temps = null;
while((s = br.readLine()) != null) {
System.out.println(s);
fout.println(s);
fout.flush();
}
fout.close();
fw.close();上面这段程序读到的页面源文件中的中文字符都编码成&#加5位的数字,从源文件中看到它的编码方式是charset=ISO-8859-1,本人也在网上找了很多关于ISO-8859-1转换gb2312的方法,但都无法实现正确的转换,希望高人能够指点迷津 谢谢附:网上找的ISO-8859-1转换gb2312的方法,但我用了不行:
public class Convert {
/** 把ISO-8859-1码转换成GB2312
*/
public static String ISOtoGB(String iso){
String gb;
try{
if(iso.equals("") || iso == null){
return "";
}
else{
iso = iso.trim();
gb = new String(iso.getBytes("ISO-8859-1"),"GB2312");
return gb;
}
}
catch(Exception e){
System.err.print("编码转换错误:"+e.getMessage());
return "";
}
}
}
谢谢 谢谢
解决方案 »
- 数字转换问题
- 深入浅出URL编码(今天在闲逛csdn发现一篇好文章,不敢独享)
- 关于CORBA,命名服务,和WEB NMS 高分急求答案
- 请求高手帮助,特别着急!!!!!!!!!!!!!!!!!!!!
- 我想实现一个applet内的色彩颜色渐变,为什么这个程序总是不通?高人指点。。。
- 问个问题,JAVA有没定时器之类的玩意?
- Javascript调用applet的方法报错“对象不支持此属性或方法”
- 真是见鬼了,我自己的帖子怎么没法删除?
- 要学java了,请大家给点建议!
- java国际化问题。为什么我的日文全变成方块。详情见内。谢谢
- 请教一个关于args[]的问题
- 怎么实现填充颜色的渐变效果??????
我试了 还是不行啊 输出的仍然没有变化
你们试下看看 我输入的是:在这登广告—全年500元起正确的结果应该是:“在这登广告—全年500元起”为什么还是转换不了呢?
这样的已经是unicode了,你直接把那段编码存成html文件看
哭啊~~~~谁来帮帮我 怎么用程序把:在这登广告—全年500元起翻译成:“在这登广告—全年500元起”这句话阿~~~
我给高分!!!!
String t = "在这登广告—全年500元起";
System.out.println(HtmlUtils.htmlUnescape(t));
HtmlUtils类全路径:org.springframework.web.util.HtmlUtils
能给我一个完整的org包吗?
我的jdk里没有你springframework这个包 麻烦给我个下载的链接 谢谢!
你的这个问题明显啊
&#***;
是html的特殊字元
真正有用的是***
你能在浏览器显示就已经是“检体中文编码”了
你吧***提出来在显示,绝对正确。
当然要把整型先转化为字符
如22312的16进制
连成一串后再显示,具体还是自己作把
import java.io.*;public class InputReader
{
public static void main(String[] args) throws Exception
{
InputStreamReader isr=new InputStreamReader(System.in,"gb2312");
BufferedReader br=new BufferedReader(isr);
String strLine=br.readLine();
for(int i=0;i<strLine.length();i++)
{
System.out.println(Integer.toHexString((int)strLine.charAt(i)));
}
isr.close();
System.out.println(strLine);
}
}
把这段代码中的InputStreamReader isr=new InputStreamReader(System.in,"gb2312");的
System.in改成你要转换的文件就OK了.
方法二:
把输出语句System.out.println(xxxx);改写成
String a=new string(xxxx.getBytes("gb2312"),"iso8859-1");
System.out.println(a);
完全可以实现.
方法三:
下载本电子书<<张孝祥Java 就业培训教程>>,第7章IO的高级应用
一目了然 西西...
http://www.springframework.org
当Request对象获取客户提交的汉字字符时,会出现乱码问题,必须进行特殊处理。首先,将获取的字符串用ISO-8859-1进行编码,并将编码存发岛一个字节数组中,然后再将这个数组转化为字符串对象即可。
例:
String textContent=request.getParameter("boy");
byte b[]=textContent.getBytes("ISO-8859-1");
textContent=new String(b);
偷前辈的,哈哈