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

这篇具有很好参考价值的文章主要介绍了【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
  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编码

关注默子,无限进步!文章来源地址https://www.toymoban.com/news/detail-456096.html

到了这里,关于【Java】在代码中设置输出字符集为UTF-8的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CentOS 设置系统字符集,显示为中文

    centos 使用vim打开含有中文的文件,中文显示为乱码。 locale 查看系统当前安装的所有字符集中有没有 zh_CN.utf8 字符集 locale -a |grep zh_CN.utf8 假如没有,则需要安装中文字符集 修改配置文件:/etc/profile.d/lang.sh 在41行处修改为: LANG=zh_CN.UTF-8 重启电脑 CentOS 8修改系统语言为中文

    2024年02月11日
    浏览(49)
  • Mysql之安装-字符集设置-用户及权限操作-sqlmode设置

    MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。使用标准的SQL数据语言形式。 (1)检查是否已安装:rpm -qa|grep mysql (2)卸载命令:rpm -e --nodeps mysql-libs (3)给/tmp赋权:chmod -R 777 /tmp (4)rpm安装:rpm -iv

    2024年02月13日
    浏览(33)
  • 设置Tomcat字符编码UTF-8

    我这里是Tomcat7,标签大概在70行左右

    2024年02月16日
    浏览(34)
  • GBASE南大通用数据库GBase 8s常见问题讲堂 -- 字符集的设置

    本文摘自GBASE南大通用社区,by:wty,原文请点击:GBase 8s常见问题 -- 字符集相关问题|GBASE社区|天津南大通用数据技术股份有限公司|GBASE-致力于成为用户最信赖的数据库产品供应商 23103   Code-set conversion function failed due to an illegal sequence or invalid value. 字符集转换失败,字符串中

    2024年01月24日
    浏览(50)
  • 高阶JAVA篇-深入了解字符集

    🔥博客主页:  小扳_-CSDN博客 ❤感谢大家点赞👍收藏⭐评论✍     文章目录        1.0 字符集的说明         1.1 ASCII  字符集         1.2 GBK 字符集         1.3 UTF-8字符集         2.0 字符集的编码与解码         2.1 编码提供了常见的方法         2.2 解码提供了常

    2024年02月06日
    浏览(31)
  • Java基础——IO流之字符集

    (1)IO前置内容:字符集 1.字符集基础知识: 计算机底层不可以直接存储字符,只能存储二进制(0,1)。 二进制可以转换成十进制。 计算机底层可以表示十进制编号。计算机可给人类字符进行编号存储,这套编号规则就是字符集。 2.ASCII字符集:(1字节) ASCII(American S

    2023年04月17日
    浏览(38)
  • 华为OD机试之全量和已占用字符集(Java源码)

    题目描述 给定两个字符集合,一个是全量字符集,一个是已占用字符集,已占用字符集中的字符不能再使用。 输入描述 输入一个字符串 一定包含@,@前为全量字符集 @后的为已占用字符集 已占用字符集中的字符一定是全量字符集中的字符 字符集中的字符跟字符之间使用英文

    2024年02月07日
    浏览(40)
  • 【华为OD机考 统一考试机试C卷】 全量和已占用字符集 、字符串统计(C++ Java JavaScript Python)

    2023年11月份,华为官方已经将 华为OD机考:OD统一考试(A卷 / B卷)切换到 OD统一考试(C卷)和 OD统一考试(D卷) 。根据考友反馈:目前抽到的试卷为B卷或C卷/D卷,其中C卷居多 ,按照之前的经验C卷部分考题会复用A卷,B卷题,博主正积极从考过的同学收集C卷和D卷真题。

    2024年02月05日
    浏览(32)
  • Java 字符转码之UTF-8互转GBK

    Java UTF-8转GBK详解 java跟python类似的做法,在java中字符串的编码是java修改过的一种Unicode编码,所以看到java中的字符串,心理要默念这个东西是java修改过的一种Unicode编码的编码。  问题的关键是new String(xxx.getBytes(\\\"gbk\\\"), \\\"gbk\\\")这句话是什么意思,xxx.getBytes(\\\"gbk\\\")得到的数组编码是

    2024年02月05日
    浏览(30)
  • 【华为OD机试】全量和已占用字符集(python, java, c++, js)

    前言 :本专栏将持续更新华为OD机试题目,并进行详细的分析与解答,包含完整的代码实现,希望可以帮助到正在努力的你。关于OD机试流程、面经、面试指导等,如有任何疑问,欢迎联系我,wechat:steven_moda;email:nansun0903@163.com;备注:CSDN。 给定两个字符集合,一个为全

    2024年02月11日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包