欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > 【java21】java21新特性之默认UTF-8字符编码

【java21】java21新特性之默认UTF-8字符编码

2025/2/26 15:20:00 来源:https://blog.csdn.net/u022812849/article/details/142453456  浏览:    关键词:【java21】java21新特性之默认UTF-8字符编码

在Java18之前,Java平台的默认字符集由主机操作系统和语言环境决定,这导致了跨平台应用中字符集不一致的问题。Java18将UTF-8设置为默认字符集,这一改变简化了文本处理,并避免了因地区设置不同而可能导致的乱码问题。

通过下面的代码来看下不同操作系统,不同JAVA版本下的默认编码:

package com.morris.java21;import java.nio.charset.Charset;
import java.util.Locale;/*** 演示不同jdk版本,不同操作系统下默认的字符编码*/
public class Utf8Demo {public static void main(String[] args) {System.out.println(Locale.getDefault());System.out.println(Charset.defaultCharset());System.out.println("你好");}
}

Windows、Java17下运行结果如下:

>java -version
java version "17.0.11" 2024-04-16 LTS
Java(TM) SE Runtime Environment (build 17.0.11+7-LTS-207)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.11+7-LTS-207, mixed mode, sharing)>java Utf8Demo.java
zh_CN
GBK
浣犲ソ

可以看到Windows的Java17下默认编码为GBK,显示中文会乱码,可以通过手动指定jvm参数设置编码来解决乱码问题:

>java -Dfile.encoding=utf-8 Utf8Demo.java
zh_CN
UTF-8
你好

Windows、Java21下运行结果如下:

>java -version
java version "21.0.3" 2024-04-16 LTS
Java(TM) SE Runtime Environment (build 21.0.3+7-LTS-152)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.3+7-LTS-152, mixed mode, sharing)>java Utf8Demo.java
zh_CN
UTF-8
你好

Linux、Java17下运行结果如下:

# java -version
java version "17.0.11" 2024-04-16 LTS
Java(TM) SE Runtime Environment (build 17.0.11+7-LTS-207)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.11+7-LTS-207, mixed mode, sharing)# java Utf8Demo.java
en
UTF-8
你好

Linux、Java21下运行结果如下:

# java -version
java version "21.0.3" 2024-04-16 LTS
Java(TM) SE Runtime Environment (build 21.0.3+7-LTS-152)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.3+7-LTS-152, mixed mode, sharing)# java Utf8Demo.java
en
UTF-8
你好

由于默认使用UTF-8编码,Java 18简化了跨平台开发过程,减少了因字符集不一致而导致的错误和复杂性。开发者不再需要显式地设置文件编码或命令行参数来确保正确的字符编码,这提高了开发效率。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词