java解编码_java编码解码

本文探讨了Java中字符编码的问题,通过示例程序展示了如何获取系统默认编码以及如何进行不同编码间的转换。在尝试将GBK编码的输入转换为ISO-8859-1编码时,出现了乱码问题,输出为'你好??',说明编码转换过程中发生了错误。
摘要由CSDN通过智能技术生成

用这个程序importjava.nio.charset.*;importjava.util.*;classWriteTest{publicstaticvoidmain(String[]argc){m=Charset.availableCharsets();Sets=m.keySet();Iteratort=s.iterator(...

用这个程序

import java.nio.charset.*;

import java.util.*;

class WriteTest

{

public static void main(String []argc)

{

m=Charset.availableCharsets();

Set s=m.keySet();

Iterator t=s.iterator();

while (t.hasNext())

System.out.println(t.next());

Properties p=System.getProperties();

p.list(System.out);

}

}

得到

file.encoding=GBK

用这个程序

import java.nio.charset.*;

import java.util.*;

class CharsetTest

{

public static void main(String[] argc) throws Exception

{

Properties pp=System.getProperties();

pp.put("file.encoding","ISO-8859-1");

int data;

int i=0;

byte[] b=new byte[100];

while((data=System.in.read())!='q')

{

b[i]=(byte)data;

i++;

}

String s=new String(b,0,i);

System.out.println(s);

String ns=new String(s.getBytes("ISO-8859-1"),"GBK");

System.out.println(ns);

}

}

在提示符中输入:你好q

输出的结果为:

你好

??

这是为什么

会得到这样的结果,这个结果好像有问题

请帮忙解答一下,谢谢

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值