Java使用UTF

您所在的位置:网站首页 文本文档乱码可以删除吗 Java使用UTF

Java使用UTF

2023-07-12 03:34| 来源: 网络整理| 查看: 265

前言

大家在开发中可能经常遇到将String字符串转为byte[]的场景,为了避免中文乱码,一般指定字符集为GBK或UTF-8来进行编码以及解码,但是如果使用不当,同样会造成字符集乱码问题。

主要原因是进行编码以及解码的字符集不一致导致

所以,在解决字符集乱码问题时一般情况下会显示指定编码和解码字符集。

// 编码 byte[] bytes = “中文”.getBytes(“UTF-8”); // 解码 new String(bytes,“UTF-8”);

不显式指定时一般会使用默认字符集进行编码或解码,此时需要确保使用的获取默认字符集的方法一样。

// 编码 获取默认字符集方法为:Charset.defaultCharset().name() byte[] bytes =“中文”.getBytes(); // 解码 获取默认字符集方法为:Charset.defaultCharset().name() new String(bytes);

以下列出两种获取默认字符集的方法及区别:

Charset.defaultCharset().name(); System.getProperty("file.encoding")

两者的区别是:

Charset.defaultCharset() 通过在JVM启动时通过-Dfile.encoding=UTF-8参数来进行设置。此方式只支持在jvm启动时设置一次,不支持在运行期修改。

System.getProperty(“file.encoding”) 获取的是操作系统的编码,可以通过System.setProperty进行修改

System.setProperty("file.encoding","UTF-8")

(此修改不会影响操作系统,重启jvm后丢失),支持在运行期修改。

我一般如下使用, 只要保证java文件的编码是utf8,其它相关设置都是utf8, 基本上无问题。

@EnableScheduling @SpringBootApplication //@Configuration public class ImageServerApplication { public static void main(String[] args) { System.setProperty("file.encoding","UTF-8"); SpringApplication.run(ImageServerApplication.class, args); System.out.println("全部启动完成"); } }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3