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 编码和解码
最新推荐文章于 2025-06-16 16:13:40 发布