[ 编码 ]UTF-8 YYDS
2021-08-28 本文已影响0人
一个好汉
编码 用各种字符集记录会是一个怎么样的结果呢
GBK是支持 ASCII 但是不兼容 ISO8859-1
如果需要支持更多国际化的符号 我们还是需要使用UTF-8
这里使用 GBK 编码 ð_µ
结果为 3f5f3f
ð 为 ISO8859-1 中的一个字符
但是咱GBK不支持呀 那就返回 3f吧
UTF8说我一点也不虚 都可以
/**
* 编码 用各种字符集记录会是一个怎么样的结果呢
*/
public static void encode() {
String src = "ð_µ";
logSomething(src);
src = "中";
logSomething(src);
}
/**
* 记录一个字符在不同字符集的十六进制表现
* @param src
*/
private static void logSomething(String src) {
log.info("src : {}", src);
log.info("ISO_8859_1 getbytes:{}",
HexUtil.encodeHexStr(src.getBytes(StandardCharsets.ISO_8859_1)));
log.info("US_ASCII getbytes:{}",
HexUtil.encodeHexStr(src.getBytes(StandardCharsets.US_ASCII)));
log.info("GBK getbytes:{}",
HexUtil.encodeHexStr(src.getBytes(new GBK())));
log.info("UTF_8 getbytes:{}",
HexUtil.encodeHexStr(src.getBytes(StandardCharsets.UTF_8)));
}
结果
src : ð_µ
ISO_8859_1 getbytes:f05fb5
US_ASCII getbytes:3f5f3f
GBK getbytes:3f5f3f
UTF_8 getbytes:c3b05fc2b5
src : 中
ISO_8859_1 getbytes:3f
US_ASCII getbytes:3f
GBK getbytes:d6d0
UTF_8 getbytes:e4b8ad