Java中FileWriter写入中文乱码

这篇具有很好参考价值的文章主要介绍了Java中FileWriter写入中文乱码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题来源:        

        Java中FileWriter写入中文乱码通常是由于“系统向目标文件写入时所使用的编码与目标文件自身的编码不同”

解决办法:

        首先,确保使用JDK11及以上

        其次,在实例化FileWriter的时候,第二个参数使用指定的文件编码,如UTF-8

        最后,成功运行。

示例代码:      

package Java.WRTest;

import java.io.FileWriter;
//注意1
import java.nio.charset.Charset;


public class FileWriterTest {
    public static void main(String[] args) {
        FileWriter writer = null;
        try{
            String file = "E:/CodeAll/Java/IOStreamTest/test.txt";
            //注意2
            writer = new FileWriter(file, Charset.forName("UTF-8"));
            writer.write("你好 世界!!");
        }catch(Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if(writer != null) {
                    writer.close();
                }
            }catch(Exception e) {
                e.printStackTrace();
            }
        }
    }
}

 代码解释:

        在“注意2”中,我们通过FileWriter(String fileName, Charset charset)的构造方法指定了字符编码,以对应我们目标文件的编码(通常使用UTF-8)。

        在“注意1”中,我们导入了Charset所需的类,使之正常使用。

拓展:

        我们还可以通过如下代码以替换Charset.forName("UTF-8")使用,

//需要的包
import java.nio.charset.StandardCharsets;
//可替换
StandardCharsets.UTF_8

        在JDK11及以上中,可以通过构造方法指定编码格式了。

        JDK20中FileWriter构造方法如图1所示, JDK11中FileWriter构造方法如图2所示, JDK8中FileWriter构造方法如图3所示。

图1 filewriter设置字符编码,java,开发语言

图2filewriter设置字符编码,java,开发语言

图3

filewriter设置字符编码,java,开发语言

运行环境:

        本机环境是运行于VsCode中,插件有如下:

filewriter设置字符编码,java,开发语言

 

filewriter设置字符编码,java,开发语言

filewriter设置字符编码,java,开发语言

filewriter设置字符编码,java,开发语言

filewriter设置字符编码,java,开发语言

filewriter设置字符编码,java,开发语言

 如果在VsCode中使用新版JDK我们需要执行下述操作步骤:

        1,文件-首选项-设置

        2,输入javahome

        3,找到下图所示位置

filewriter设置字符编码,java,开发语言        4,进入指定文件后键入我49行中的内容,目录替换为你的新JDK文件夹位置

filewriter设置字符编码,java,开发语言

        5,保存并重启,检查是否正常使用

        注:java.home已淘汰,现已替换为:java.jdt.ls.java.home文章来源地址https://www.toymoban.com/news/detail-771081.html

到了这里,关于Java中FileWriter写入中文乱码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Visual Studio Code将中文写入变量时,中文老是乱码问题

    对于这个问题,我也是弄了很久才知道,编码格式的问题 在此之前我们要先下载个插件 照这以上步骤,最后按F6运行即可,按F6是利用我们刚刚下载的插件进行编译,唯一有一点不好就是,用这种插件运行的话,打的断点是不起作用的。

    2024年02月05日
    浏览(45)
  • 解决docker容器中文字符乱码问题

    在命令行中,输入中文出现乱码或者键入错误的情况: 这里我想输入:”中文“,但是出现乱码。 并且,我在之前已经创建好镜像,通过镜像生成了容器。 1.使用locale查看当前容器的系统使用的字符集。 2.使用locale -a查看当前容器的系统支持可以使用的字符集。 3.在一些博

    2024年02月03日
    浏览(53)
  • 一篇文章彻底搞懂Python字符编码方式(中文编码,UTF-8,unicode,gb,gbk,中文乱码,爬虫中文乱码)

    目录 前言 一、字符编码方式的来龙去脉。 1.字符集的含义。 2.编码方式演化过程 1.ASCII 2.GB2312、GBK 3.Unicode 4.UTF-8 二、Python的字符编码及相关操作 1.window系统的字符编码 2.Python的字符编码 1.Python中str与bytes的区别和联系 2.Python encode()方法【对str进行编码】 3.Python decode()方法【对

    2024年01月17日
    浏览(56)
  • STM32串口映射printf——发送中文字符乱码

    简介         在将之前的工程使用Notepad++修改代码后,加载到现有工程中,使用串口打印输出测试串口功能,发现输出的中文字符全为乱码。对照keil设置,确保与之前工程中设置一样,莫名的就是不能输出中文字符。 解决过程         此处串口已输出为乱码,说明移植过来

    2024年02月12日
    浏览(46)
  • Pycharm 中文乱码解决,统一设置 UTF-8,再也不会乱码了

    当我们在使用pycharm编写代码的时候,为了避免乱码问题,我们统一用utf-8编码。由于Python源代码也是一个文本文件,所以当你的源代码包含中文的时候,在保存源代码的时候就务必指定保存为UTF-8编码。 但是有很的多的小伙伴还不知道如何进行设置,下面一起来看看详细的

    2024年02月12日
    浏览(44)
  • STM32CubeIDE中文设置(乱码、汉化)

       没有GBK,直接填写GBK  (不过有些在utf-8下面是中文变过去反而乱码了,看情况来吧)     http://download.eclipse.org/technology/babel/update-site/R0.17.1/2019-12/    重启 

    2024年02月12日
    浏览(39)
  • STM32在Keil中使用串口助手打印中文字符出现乱码问题

     问题如下,中文字符显示乱码,但数字正常。 通常这种在串口助手打印出现乱码情况: 无非是 波特率设置错误 ,不对应。就像一个滴水的水龙头,水滴进一个循环开合的容器,双方速率不能很好匹配,一定会出现水滴不能完全滴进容器,或者完全滴进或者完全滴不进的情

    2024年02月09日
    浏览(41)
  • JDBC连接MySQL后出现中文字符乱码的问题及其解决方案

    最近在做JavaWeb课程的实验课,今天在尝试jsp通过jdbc连接数据库向MySQL中的user表插入数据后, 表内数据出现了中文乱码的问题 。下面将详细给出本次问题出现场景以及详细的解决方案。 在我的MySQL中的数据库db1里,有一个名为“user”的表,其属性值如下: 通过navicat向表格中

    2024年02月01日
    浏览(40)
  • IntelliJ IDEA 控制台中文乱码和错误: 非法字符: ‘\ufeff‘

    最近在 Windows 电脑上使用 IntelliJ IDEA 运行 Java 程序时,发现运行报错且控制台显示乱码。如下图1: 有点蒙,这是啥意思?又报错又是乱码。 1、先来解决乱码吧。把 IDEA 的编码都设置为 UTF-8。 如下图2: 不行,运行结果依旧。 2、网上查阅资料提示,需要把 Windows 的系统默认

    2024年02月09日
    浏览(58)
  • linux下json字符串格式化、解决json.tool中文乱码

    环境: centos7.9 在有外网的情况下,如果对数据没有严格的保密,那么可以通过在线json解析网站 https://www.sojson.com/ 对json字符串进行格式化。本篇讲如何在Linux环境下使用命令对json字符串进行格式化。 修改json.tool程序,该程序存在于python系统库安装路径下的json/tool.py, json.

    2024年02月15日
    浏览(54)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包