You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用FileReader读取文件时VSCode终端引号显示为â??的问题排查

问题原因分析:引号乱码与文件图标异常

一、引号乱码的核心原因

  • Java的FileReader默认使用系统平台的字符编码(比如Windows默认GBK,macOS/Linux默认UTF-8)读取文件。但你的readme.txt实际是用UTF-8编码保存的(包含智能引号这类多字节特殊字符),当解码编码不匹配时,UTF-8的多字节字符被错误解析,就会出现â??这类乱码。

二、VSCode文件图标异常的关联原因

  • VSCode的文件图标是依据文件编码、类型或扩展名识别的,readme.txt图标异常是因为它的编码格式(比如带UTF-8 BOM)和另外两个正常的.txt文件不一致,导致VSCode的图标识别逻辑误判。

解决方法

1. 修复Java读取乱码

替换依赖默认编码的FileReader,改用指定UTF-8编码的InputStreamReader,确保解码和文件编码一致:

import java.io.*;
import java.nio.charset.StandardCharsets;

public class FileReadDemo {
    public static void readFile() {
        try{
            BufferedReader br = new BufferedReader(
                new InputStreamReader(
                    new FileInputStream("readme.txt"), 
                    StandardCharsets.UTF_8
                )
            );
            String line;
            while((line = br.readLine()) != null){
                System.out.println(line);
            }
            br.close();
        } catch (IOException e){
            e.printStackTrace(); // 保留异常打印,方便排查问题
        }
    }
}

2. 修复VSCode文件图标异常

打开VSCode中的readme.txt,点击右下角的编码标识(比如显示GBK),选择「通过编码重新打开」->「UTF-8」,重新保存文件后,图标即可恢复正常。

内容的提问来源于stack exchange,提问作者Marc Isip

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 03:09:24