public class CharCode
{
public static void main(String[] args)throws Exception
{
System.setProperty("file.encoding","iso8859-1"); //(1) System.getProperties().list(System.out); String strChina = "中国";
for(int i = 0;i<strChina.length();i++)
{
System.out.println(Integer.toHexString((int)strChina.charAt(i)));
} byte[] buf = strChina.getBytes(); //(2)
for(int i=0;i<buf.length;i++)
{
System.out.println(Integer.toHexString(buf[i])); //(3)
}
for(int i=0;i<buf.length;i++)
{
System.out.write(buf[i]); //(4)
}
System.out.println();
}
}
-----------------------------------------------------------------------
(1)确实已经把java虚拟机环境属性改为iso8859-1了..(3)和(4)却是以GBK的字符编码输出...把(2)改为byte[] buf = strChina.getBytes("iso8859-1"); 才按照iso8859-1的字符编码输出....为什么(1)没起作用?我是新人...没有分....请大家多多帮忙....
{
public static void main(String[] args)throws Exception
{
System.setProperty("file.encoding","iso8859-1"); //(1) System.getProperties().list(System.out); String strChina = "中国";
for(int i = 0;i<strChina.length();i++)
{
System.out.println(Integer.toHexString((int)strChina.charAt(i)));
} byte[] buf = strChina.getBytes(); //(2)
for(int i=0;i<buf.length;i++)
{
System.out.println(Integer.toHexString(buf[i])); //(3)
}
for(int i=0;i<buf.length;i++)
{
System.out.write(buf[i]); //(4)
}
System.out.println();
}
}
-----------------------------------------------------------------------
(1)确实已经把java虚拟机环境属性改为iso8859-1了..(3)和(4)却是以GBK的字符编码输出...把(2)改为byte[] buf = strChina.getBytes("iso8859-1"); 才按照iso8859-1的字符编码输出....为什么(1)没起作用?我是新人...没有分....请大家多多帮忙....
解决方案 »
- JAVA初学者,2个小问题想请教下
- java中按照字母数字顺序输出
- java文件传输问题,printWriter与流使用
- 这么简单的问题难道没人知道吗?从JTree删除或增加一个节点后,如何更新显示?
- 请问如何在JAVA中编程修改IE的安全级别?小第跪求答案了!!!
- 请问IDE的高亮显示用JAVA怎么实现?
- 我没有看懂这个程序中compare()为什么没有执行语句
- 大虾,帮忙推荐几款学习JAVA书籍?
- 类似于package net.wy; 应该把net目录放在哪里? 是简单的问题~~~ 我就是不会~~
- Collection List Set Map 是怎样的关系?有什么用处?哥哥请回答!
- Junit问题?
- 在java中如何禁用jframe上的放大按钮?
56fd
ffffffd6
ffffffd0
ffffffb9
fffffffa
中国
4e2d
56fd
ffffffd6
ffffffd0
ffffffb9
fffffffa
中国正确的输出结果应该是
4e2d
56fd
3f
3f
??
中国
操作系统缺省编码可以这样取得:
String DefaultOSencoding=System.getProperty("file.encoding");
但是改变file.encoding并不能改变操作系统缺省编码(控制面板==>;区域设置 设置实现)的,
file.encoding是供jvm编译时用的,所以这里改变file.encoding基本上是无用的.上面的整个流程是Source-->javac-->javaIO,其中Source-->javac与file.encoding有直接关系.
JavaIO与操作系统缺省编码有直接联系(人为指定编码、解码除外),另外就是java中的字符集是UNICODE.