您好,欢迎来到好走旅游网。
搜索
您的当前位置:首页解码和编码

解码和编码

来源:好走旅游网
java中编码和解码的问题

悬赏分:20- 解决时间:2009-7-27 15:25

import java.io.*;

public class InputReader {

public static void main (String [] args) throws Exception {

InputStreamReader isr=new InputStreamReader(System.in,\"iso8859-1\"); BufferedReader br=new BufferedReader(isr); String strLine=br.readLine();

//String str=new String(strLine.getBytes(\"gb2312\"),\"iso8859-1\"); for(int i=0;iSystem.out.println(Integer.toHexString((int)strLine.charAt(i))); }

isr.close();

System.out.println(strLine);

//System.out.println(new String(strLine.getBytes(\"iso8859-1\"),\"gb2312\")); }

}

这段程序中对于编码和解码的问题我很疑惑,在输入“中国”之后进入程序不是自动使用Unicode编码方式将“中国”编码成4e2d 56fd的形式么,然后用把它编码成iso8859-1么?本来程序输出是乱码,但是加上

System.out.println(new String(strLine.getBytes(\"iso8859-1\"),\"gb2312\"));

之后就成功了,这个语句的意思不是先把strLine字符串用gb2312编码,然后用iso8859-1解码成新字符串付给str么,最后通过system.out.println默认的gb2312方式编码输出么,中间我感觉很乱,有清楚中间各种转换过程的,能给我详细的解释下么!就是字符串在这个中是怎么一步步转换然后成功输出的!

问题补充:

1楼说的是先将字符串以iso8859-1的方式转换成字符数组,然后在利用string的getbytes的方法在进行一次编码?最后用gb2312的方式将字符转换?最后用默认的gb2312编码将字符输出?感觉有点乱!

提问者: duke881121 - 四

最佳答案

new String(strLine.getBytes(\"iso8859-1\"),\"gb2312\") 其实这里很好明白

首先将字符串转换成byte数组。。以iso8859-1的编码来转换。。

然后使用new String创建一个新字符串,前面带上byte[]数组 后面带上他的具体编码。。 一般转码都使用这样的方式。。JSP里经常出现乱码的

都是加上过滤器然后中间使用这个new String(strLine.getBytes(\"iso8859-1\"),\"gb2312\")方

式将编码转换。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- haog.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务