今日无聊,来试试如何在 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
  1. 通过环境变量设置:
    可以在运行程序之前设置环境变量file.encoding的值为UTF-8, 例如在linux中:
export file.encoding=UTF-8
java main

或者在windows中:

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

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


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

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

关注默子,无限进步!

【Java】在代码中设置输出字符集为UTF-8相关推荐

  1. Android如何在java代码中设置margin

    Android如何在java代码中设置margin,也就是组件与组件之间的间距. 代码中设置: LinearLayout.LayoutParams params = new LinearLayout. ...

  2. java.library.path属性在代码中设置不生效问题

    http://www.blogjava.net/gembin/archive/2008/10/29/237377.html from http://daimojingdeyu.blogbus.com/ ...

  3. android中在java代码中设置Button按钮的背景颜色

    android中在java代码中设置Button按钮的背景颜色 1.设置背景图片,图片来源于drawable: flightInfoPanel.setBackgroundDrawable(getRes ...

  4. 详解Spring中的CharacterEncodingFilter--forceEncoding为true在java代码中设置失效--html设置编码无效...

    在项目中有很多让人头疼的问题,其中,编码问题位列其一,那么在Spring框架中是如何解决从页面传来的字符串的编码问题的呢?下面我们来看看Spring框架给我们提供过滤器CharacterEncodin ...

  5. android 动态设置margin,android 代码中设置margin

    场景:Android怎么在java代码中设置margin Android如何在java代码中设置margin 原创帖,转发请注明出处:http://thierry-xing.iteye.com/blo ...

  6. 1、代码中设置编码、编辑器中设置Python的编码

    1Python中文编码 1.1代码中设置编码 Python中默认的编码格式是ASCII格式,在没有修改编码格式时无法正确打印汉字,所以在读取中文的时候会报错. 解决办法为只要在文件开头加入 # -- ...

  7. Android在代码中设置drawableLeft(Right/Top/Bottom)

    根据业务的需要,要在代码中设置控件的drawableLeft,drawableRight,drawableTop,drawableBottom属性. 我们知道在xml中设置的方法为: android: ...

  8. 如何在 Java 应用程序中设置 HicariCP 连接池

    在本教程中,我们将介绍 HikariCP 并展示如何在 Java 应用程序中设置 HicariCP 连接池.在我们的应用程序中,我们向 MySQL 数据库发出请求. HikariCP是可靠的高性能 J ...

  9. android 设置字体大小和不同颜色,Android代码中设置字体大小,字体颜色,显示两种颜色.倒计时效果...

    Android代码中设置字体大小,字体颜色,显示两种颜色 在xml文件中字体大小用的像素 android:id="@+id/uppaid_time" android:layout_ ...

最新文章

  1. 新浪程序员加班改bug,竟错失77万年会大奖
  2. Eclipse下svn的创建分支/合并/切换使用
  3. 一文读懂全球半导体市场
  4. Nginx简介及使用Nginx实现负载均衡的原理【通俗易懂,言简意赅】
  5. 初一模拟赛总结(6.6 my brother高考前一天,加油!(。・`ω´・。))
  6. linux查看文件有多少行
  7. Vue框架里使用Swiper - 安装篇
  8. html清除require报错,javascript - requirejs加载报错问题?
  9. java与sql心得体会_学习心得
  10. 计算机应用能力考试初级,河北省职称计算机应用能力考试初级
  11. 【手写数字识别】基于matlab GUI BP神经网络手写数字识别系统【含Matlab源码 1639期】
  12. 阿里巴巴矢量图标库的引入——symbol类型的使用——阿里图标组件封装
  13. 计算机 数据挖掘 知识,计算机软考考试必备知识点:数据挖掘
  14. 第三章-2 MSF扫描漏洞模块
  15. 【全套攻略】关于建站、服务器、云虚拟主机你想知道的都在这里!
  16. java 鼠标动眼睛动_java实现眼睛跟着鼠标转动的跟踪眼代码
  17. php 保留小数点两位不四舍五入 bcdiv()
  18. Word美化代码块样式
  19. Java Future接口、Future模式理解
  20. UBTC在2019,潮水褪去后的价值凸显

热门文章

  1. SQL-统计公司迟到名单
  2. 如何修改魔兽争霸war3分辨率
  3. 《道德经》第三十一章
  4. 用热塑技术修复供水(给水)燃气等压力管道的非开挖技术
  5. 西方美男子与美女的说法及典故
  6. ubuntu 安转winqq国际版
  7. Collect documents
  8. English语法_方式副词 - almost / nearly
  9. 关于LD1117S12TR
  10. 从此实现文库下载自由(YYDS)