Java字符编码

本文详细介绍了Java中的字符编码,包括Char字符、JDK支持的字符集、编码与解码的方法,以及解决乱码问题的策略。通过示例展示了getBytes()、getBytes(String charsetName)等方法的使用,并探讨了字符编码的不可逆情况。最后提到了InputStreamReader和OutputStreamWriter在IO流中的应用。
摘要由CSDN通过智能技术生成

public static Charset defaultCharset()

示例:

System.out.println(“系统默认编码:” + System.getProperty(“file.encoding”));

System.out.println(“系统默认语言:” + System.getProperty(“user.language”));

System.out.println(“系统默认字符编码:” + Charset.defaultCharset());

运行结果:

系统默认编码:UTF-8

系统默认语言:zh

系统默认字符编码:UTF-8

Char字符

Char本质上是一个固定占用两个字节的无符号正整数,这个正整数对应与Unicode编号,用于表示那个Unicode编号对应的字符。

由于固定占用两个字节,char只能表示Unicode编号在65536以内的字符,而不能表示超出范围的字符。

超出范围的字符只能使用String类表示,例如汉字‘𠮷’的码点为0x20BB7,该码点显然超出了65535,只能用String表示,复制‘𠮷’粘贴到代码中会自动转换为\uD842\uDFB7

示例:

char c = ‘程’;

System.out.println©;

String s = “\uD842\uDFB7”;

System.out.println(s);

运行结果:

𠮷

JDK支持的字符集

Map<String, Charset> map = Charset.availableCharsets();

System.out.println(“the available Charsets supported by jdk:” + map.size());

for (Map.Entry<String, Charset> entry : map.entrySet()) {

System.out.println(entry.getKey());

}

输出:

the available Charsets supported by jdk:170

Big5

Big5-HKSCS</

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值