package Test; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.Charset; import java.nio.charset.CharsetDecoder; import java.nio.charset.CharsetEncoder; import java.nio.charset.CodingErrorAction; import java.util.SortedMap; public class MyTest { // 遍历支持的字符集 public static void QryCharset() { SortedMap<String, Charset> map = Charset.availableCharsets(); for (String string : map.keySet()) { System.out.println(string + ":" + map.get(string)); } } // 编码和解码 public static void Bianma(String charset) { String input = "你123好"; if (Charset.isSupported(charset)) { Charset sCharset = Charset.forName(charset); // 编码 CharsetEncoder encoder = sCharset.newEncoder(); encoder.onUnmappableCharacter(CodingErrorAction.IGNORE); // 解码 CharsetDecoder decoder = sCharset.newDecoder(); CharBuffer buffer = CharBuffer.allocate(32); buffer.put(input); buffer.flip(); try { ByteBuffer byteBuffer = encoder.encode(buffer); CharBuffer cBuffer = decoder.decode(byteBuffer); System.out.println(cBuffer); } catch (Exception e) { e.printStackTrace(); } } } public static void main(String[] args) { QryCharset(); Bianma("x-ISO-2022-CN-GB"); } }
Java 编码和解码
最新推荐文章于 2024-06-12 08:24:43 发布