##这段程序是想:先通过改变系统的默认字符集,由"GBK"改成"ISO-8859-1" 所以输入的字符要先把由"ISO-8859-1"编码解码来的srt字符串编码成字节数组;得到字节数组后,再由"GBK"编码方法 解码成一个字符串strGBK,,我想输出的是这个strGBK 。
运行时输入: 中文+q
问题是:
这句(System.out.println(str);)是本不应能正确输出的,可输出的却是正确的。
而这句(String strGBK=new String(str.getBytes("ISO-8859-1"),"GBK");) 是我认为能正确输出的,,去不能正确输出而显示"?"
这是视频上的例子呀,可是怎么会出错呢???高手指点,,,,,(我用的是JCreator做的,不用有影响吧)
##
import java.nio.charset.*;
import java.util.*;
public class CharsetTest {
public static void main(String[] args) throws Exception
{
Properties p=System.getProperties();
p.put("file.encoding","ISO-8859-1");
byte[] buf=new byte[100];
int i=0;
int data;
while((data=System.in.read())!='q')
{
buf[i]=(byte)data;
i++;
}
String str=new String(buf,0,i);
System.out.println(str);这句应是不正确的,可输出的是正确的。
String strGBK=new String(str.getBytes("ISO-8859-1"),"GBK"); //这句应是正确输出的,可输出的是错的,是?
System.out.println(strGBK);
}
}
运行时输入: 中文+q
问题是:
这句(System.out.println(str);)是本不应能正确输出的,可输出的却是正确的。
而这句(String strGBK=new String(str.getBytes("ISO-8859-1"),"GBK");) 是我认为能正确输出的,,去不能正确输出而显示"?"
这是视频上的例子呀,可是怎么会出错呢???高手指点,,,,,(我用的是JCreator做的,不用有影响吧)
##
import java.nio.charset.*;
import java.util.*;
public class CharsetTest {
public static void main(String[] args) throws Exception
{
Properties p=System.getProperties();
p.put("file.encoding","ISO-8859-1");
byte[] buf=new byte[100];
int i=0;
int data;
while((data=System.in.read())!='q')
{
buf[i]=(byte)data;
i++;
}
String str=new String(buf,0,i);
System.out.println(str);这句应是不正确的,可输出的是正确的。
String strGBK=new String(str.getBytes("ISO-8859-1"),"GBK"); //这句应是正确输出的,可输出的是错的,是?
System.out.println(strGBK);
}
}
解决方案 »
- 问个关于自省的问题
- 为什么JDBC做批量更新速度很慢?
- 求教_如何在JPanel中设置背景图,同时放置组件在图上!
- java安装的问题
- 哪里有SUN JAVA Desktop System下载啊?
- 刚接触java,请教各位棘手一些问题!
- 怎么在FX中把圆做的像球一样
- 请教:老师布置了一个JAVA的设计题目,请问有什么好的题目啊(至少包括线程)我是JAVA初学者.
- 关于打开文件的权限
- 如何不在jbuilder的ide环境中使用jbuilder的类?
- 能运行就给分
- ant时出现异常:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/tools/ant/launch/Launcher
http://www.regexlab.com/zh/encoding.htm
应该可以令你满意了