java学习笔记:java 获取系统中默认的编码、字符串编码转换源代码
package com.study.javastudy; import java.io.UnsupportedEncodingException; import java.nio.charset.Charset; import java.util.Arrays; public class EnDecExample { public static void main(String[] args) throws UnsupportedEncodingException { // java 获取系统中默认的编码 // 方法一:中文操作系统中打印GBK,这是我的IDE里设置的编码格式。 System.out.println(System.getProperty("file.encoding")); // UTF-8 //方法二:中文操作系统中打印GBK,这是我的IDE里设置的编码格式。 System.out.println(Charset.defaultCharset()); // UTF-8 // ------------------ /* * 涉及到的String类里的方法如下: // The value is used for character storage. private final char value[]; // 编码 public byte[] getBytes(String charsetName) throws UnsupportedEncodingException { if (charsetName == null) throw new NullPointerException(); return StringCoding.encode(charsetName, value, 0, value.length); } // 解码 public String(byte bytes[], Charset charset) { this(bytes, 0, bytes.length, charset); } * */ // ------------------ // 编码解码的例子 String str = "好"; // 操作的字符串 // 编码 byte[] b_default = str.getBytes(); byte[] b_iso = str.getBytes("ISO-8859-1"); System.out.println("操作系统默认的编码格式: " + Arrays.toString(b_default)); // 操作系统默认的编码格式: [-27, -91, -67] System.out.println("ISO-8859-1编码格式: " + Arrays.toString(b_iso)); // ISO-8859-1编码格式: [63] // 解码 System.out.println("操作系统默认的编码格式: " + new String(b_default)); // 操作系统默认的编码格式: 好 System.out.println("ISO-8859-1解码格式: " + new String(b_iso)); // ISO-8859-1解码格式: ? // ------------------ // 将GB2312编码的字符串转换为ISO-8859-1编码的字符串 String s1 = "你好"; String s2 = new String(s1.getBytes("GB2312"), "ISO-8859-1"); } }