java写Demo验证汉字编码不同长度不同,并写出分析
时间: 2024-01-14 14:05:12 浏览: 28
在 Java 中,汉字的编码方式一般有两种,分别是 GB2312 和 UTF-8,其中 GB2312 编码方式是定长编码,每个汉字占用两个字节,而 UTF-8 编码方式是变长编码,一个汉字可能占用 3 个或 4 个字节。
下面是一个简单的 Java 程序,用于验证汉字编码不同长度不同的情况:
```java
public class ChineseEncodingDemo {
public static void main(String[] args) throws UnsupportedEncodingException {
String s1 = "你好世界"; // GB2312 编码
String s2 = "你好世界"; // UTF-8 编码
System.out.println("s1 长度:" + s1.getBytes("GB2312").length);
System.out.println("s2 长度:" + s2.getBytes("UTF-8").length);
}
}
```
输出结果为:
```
s1 长度:10
s2 长度:12
```
可以看到,使用 GB2312 编码时,每个汉字都占用两个字节,因此字符串 "你好世界" 的长度为 10。而使用 UTF-8 编码时,一个汉字可能占用 3 个或 4 个字节,因此字符串 "你好世界" 的长度为 12。
需要注意的是,在使用 UTF-8 编码时,如果字符串中只包含 ASCII 字符,则每个字符占用一个字节;而如果字符串中包含汉字等非 ASCII 字符,则每个字符占用的字节数可能不同。因此,在使用 UTF-8 编码时,字符串的长度需要根据实际情况进行计算。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)