/**
* 关于字符的编码:
* 字符是根据字节数据转换而来,而什么样的字节数据转换为具体哪个字符时根据使用的编码的
* 字符串自己不具有使用的编码这个属性?还是UTF-8的字符集兼容GBK的所以可以转换?
* 所以一个字符串可以以不同的编码转换为字节数组并还原
* 而向String.getBytes()这个方法其实是用了系统的默认编码,这类代码对操作系统有依赖性
*
* 打印结果:
* 源字符串s1=中国
* 使用系统默认编码转换的 字符串的GBK编码对应数组 获得的字符串s2=�й�
* 使用GBK编码转换的 字符串的GBK编码对应数组 获得的字符串s3=中国
* 使用系统默认编码转换的 字符串的UTF-8编码对应数组 获得的字符串s4=中国
* 使用UTF-8转换的 字符串的UTF-8编码对应数组 获得的字符串s5=中国
*/
public static void testCast() {
String s1 = "中国";
try {
byte[] byteGbk = s1.getBytes("GBK");
String s2 = new String(byteGbk);//使用系统默认编码(应该是UTF-8)获得的GBK转得byte数组的字符串
String s3 = new String(byteGbk, "GBK");
byte[] byteutf8 = s3.getBytes("UTF-8");
String s4 = new String(byteutf8);
String s5 = new String(byteutf8, "UTF-8");
System.out.println("源字符串s1=" + s1);
System.out.println("使用系统默认编码转换的 字符串的GBK编码对应数组 获得的字符串s2=" + s2);
System.out.println("使用GBK编码转换的 字符串的GBK编码对应数组 获得的字符串s3=" + s3);
System.out.println("使用系统默认编码转换的 字符串的UTF-8编码对应数组 获得的字符串s4=" + s4);
System.out.println("使用UTF-8转换的 字符串的UTF-8编码对应数组 获得的字符串s5=" + s5);
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
}
}
* 关于字符的编码:
* 字符是根据字节数据转换而来,而什么样的字节数据转换为具体哪个字符时根据使用的编码的
* 字符串自己不具有使用的编码这个属性?还是UTF-8的字符集兼容GBK的所以可以转换?
* 所以一个字符串可以以不同的编码转换为字节数组并还原
* 而向String.getBytes()这个方法其实是用了系统的默认编码,这类代码对操作系统有依赖性
*
* 打印结果:
* 源字符串s1=中国
* 使用系统默认编码转换的 字符串的GBK编码对应数组 获得的字符串s2=�й�
* 使用GBK编码转换的 字符串的GBK编码对应数组 获得的字符串s3=中国
* 使用系统默认编码转换的 字符串的UTF-8编码对应数组 获得的字符串s4=中国
* 使用UTF-8转换的 字符串的UTF-8编码对应数组 获得的字符串s5=中国
*/
public static void testCast() {
String s1 = "中国";
try {
byte[] byteGbk = s1.getBytes("GBK");
String s2 = new String(byteGbk);//使用系统默认编码(应该是UTF-8)获得的GBK转得byte数组的字符串
String s3 = new String(byteGbk, "GBK");
byte[] byteutf8 = s3.getBytes("UTF-8");
String s4 = new String(byteutf8);
String s5 = new String(byteutf8, "UTF-8");
System.out.println("源字符串s1=" + s1);
System.out.println("使用系统默认编码转换的 字符串的GBK编码对应数组 获得的字符串s2=" + s2);
System.out.println("使用GBK编码转换的 字符串的GBK编码对应数组 获得的字符串s3=" + s3);
System.out.println("使用系统默认编码转换的 字符串的UTF-8编码对应数组 获得的字符串s4=" + s4);
System.out.println("使用UTF-8转换的 字符串的UTF-8编码对应数组 获得的字符串s5=" + s5);
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
}
}