Java代码中如何设置输出字符集为UTF-8

 更新时间:2023年05月25日 09:42:46   作者:默子要早睡.Histone  
这篇文章主要介绍了Java代码中设置输出字符集为UTF-8,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

今日无聊,来试试如何在 Java 代码中更改输出字符集。

一行代码设置输出字符集为UTF-8

import java.io.PrintStream;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        System.setOut(new PrintStream(System.out, true, StandardCharsets.UTF_8));
        System.out.println("Hello world!");
        System.out.println("请输入年份:");
        int year;
        year = new Scanner(System.in).nextInt();
        boolean isLeapYear = isLeapYear(year);
        System.out.println(isLeapYear);
    }
    /**
     * @param year 年份
     * @return 是否是闰年
     */
    static boolean isLeapYear(int year){
        if(year % 4 == 0 && year % 100 != 0){
            return true;
        }else return year % 400 == 0;
    }
}

其中我们要看的语句,其实只有一行

System.setOut(new PrintStream(System.out, true, StandardCharsets.UTF_8));

在设置Java程序的输出字符集为UTF-8。

System.setOut 是 Java标准库 中的一个静态方法,用于设置标准输出流。标准输出流是程序输出信息的默认位置,通常是控制台。

new PrintStream(System.out, true, StandardCharsets.UTF_8)创建了一个新的PrintStream对象。这个对象的构造函数接受三个参数:

  • System.out 表示这个流将要输出到控制台。
  • true 表示开启自动刷新,即在输出后立即刷新缓冲区。
  • StandardCharsets.UTF_8表示使用UTF-8字符集编码输出的字符。

总之,这一行代码的作用是将程序的输出字符集设置为UTF-8,使得程序能正确输出中文字符。

除此之外没有别的办法了吗?

答案当然是:有的。

其他办法

1.命令行中使用JVM参数:
可以在运行Java程序时,在命令行上使用
-Dfile.encoding=UTF-8来设置程序的输出字符集。

java -Dfile.encoding=UTF-8 Main

2.通过环境变量设置:
可以在运行程序之前设置环境变量file.encoding的值为UTF-8, 例如在linux中:

export file.encoding=UTF-8
java main

或者在windows中:

set file.encoding=UTF-8
java Main

3.设置编码格式:
你可以在程序中使用 -encoding UTF-8 选项来告诉编译器使用 UTF-8 编码格式来编译你的代码。例如:

javac -encoding UTF-8 Main.java

这样编译后的字节码文件就会使用UTF-8编码格式。

以后遇到中文乱码就不用怕啦,如果遇到了中文乱码问题,可以使用上述方法来解决。设置程序的输出字符集为UTF-8可以确保程序能正确输出中文字符。

另外,还有一些其他的解决中文乱码问题的方法,比如在文件头部添加UTF-8编码声明,或者在文本编辑器中打开文件时选择UTF-8编码

到此这篇关于Java代码中设置输出字符集为UTF-8的文章就介绍到这了,更多相关Java输出字符集为UTF-8内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 学习Java之自定义异常与NullPointerException的处理

    学习Java之自定义异常与NullPointerException的处理

    有时候Java自身提供的异常类并不能很好地表达我们的需求,所以这时候我们就可以自定义异常,也就是说,我们可以制造出一个自己的异常类,这样就可以抛出或捕获自己的异常了,本文就给大家详细讲讲Java自定义异常与NullPointerException的处理
    2023-08-08
  • SpringBoot后端上传文件类型检测方式

    SpringBoot后端上传文件类型检测方式

    这篇文章主要介绍了SpringBoot后端上传文件类型检测方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • SpringBoot工程中Spring Security应用实践记录流程分析

    SpringBoot工程中Spring Security应用实践记录流程分析

    Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。这篇文章主要介绍了SpringBoot工程中Spring Security应用实践,需要的朋友可以参考下
    2021-09-09
  • StringUtils工具包中字符串非空判断isNotEmpty和isNotBlank的区别

    StringUtils工具包中字符串非空判断isNotEmpty和isNotBlank的区别

    今天小编就为大家分享一篇关于StringUtils工具包中字符串非空判断isNotEmpty和isNotBlank的区别,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Java封装好的mail包发送电子邮件的类

    Java封装好的mail包发送电子邮件的类

    本文给大家分享了2个java封装好的mail包发送电子邮件的类,并附上使用方法,小伙伴们可以根据自己的需求自由选择。
    2016-01-01
  • Java动态加载类示例详解

    Java动态加载类示例详解

    这篇文章主要给大家介绍了关于Java动态加载类的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 解决使用mybatis-plus时,生成的SQL大写变小写加下划线问题

    解决使用mybatis-plus时,生成的SQL大写变小写加下划线问题

    这篇文章主要介绍了解决使用mybatis-plus时,生成的SQL大写变小写加下划线问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • 在Spring Boot框架中使用AOP的正确姿势

    在Spring Boot框架中使用AOP的正确姿势

    aop是spring的两大功能模块之一,功能非常强大,为解耦提供了非常优秀的解决方案。下面这篇文章主要给大家介绍了如何在Spring Boot框架中使用AOP的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-08-08
  • Java实现的简单掷骰子游戏示例

    Java实现的简单掷骰子游戏示例

    这篇文章主要介绍了Java实现的简单掷骰子游戏,涉及Java随机数的简单生成、运算与判定相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • java——多线程基础

    java——多线程基础

    Java多线程实现方式有两种,第一种是继承Thread类,第二种是实现Runnable接口,两种有很多差异,下面跟着本文一起学习吧,希望能给你带来帮助
    2021-07-07

最新评论