读取json文件中文乱码

public class DownloadUtil {

    private static final Logger LOGGER = LoggerFactory.getLogger(DownloadUtil.class);

    public static String getJsonStringAt(String urlString) {
        StringBuffer strBuf = new StringBuffer();
        try {
            URL url = new URL(urlString);
            URLConnection conn = url.openConnection();
            BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
            String line = null;
            while((line = reader.readLine()) != null) {
                strBuf.append(line + " ");
            }
            reader.close();
        } catch (MalformedURLException e) {
            LOGGER.error("[DownloadUtil.getJsonStringAt] 下载文件异常,exp:{}",e);
        } catch (IOException e) {
            LOGGER.error("[DownloadUtil.getJsonStringAt] 下载文件异常,exp:{}",e);
        }
        return strBuf.toString();
    }

    public static void main(String[] args) {
        String jsonStr = DownloadUtil.getJsonStringAt("https://blackfish-fb-private-sit.oss-cn-shanghai.aliyuncs.com/fb/t3/MDUzZTVkMTgtYWZmNC00NGE3LTg3YzgtMDZhMThlYzNkM2Zl.json");
        System.out.println(jsonStr);
    }
}

一开始读取远程的Json文件总是出现中文乱码,后来在创建InputStreamReader对象时指定了编码格式UTF-8,问题解决了,就是这一句:

new InputStreamReader(conn.getInputStream(), "UTF-8")

### 解决VSCode中JSON文件中文乱码的方法 在VSCode中遇到打开JSON文件时出现中文乱码的情况,通常是因为文件编码不匹配所致。为了确保能够正确读取和显示JSON文件中的中文字符,可以采取以下措施: #### 手动更改字符集类型 当发现文件存在乱码现象时,可以通过调整当前文档的字符编码来解决问题。具体操作是在VSCode界面底部右侧找到并点击当前使用的字符集名称(通常是`UTF-8`),随后选择适合该文件的实际编码方式,比如`GB18030`或`GBK`等[^1]。 ```json { "files.autoGuessEncoding": true, } ``` 这段配置项可以在用户的设置文件(`settings.json`)里添加,启用此选项后,VSCode会在每次加载文件时尝试自动检测其编码格式,从而减少因误判而导致的乱码可能性。 另外,在处理特定编程语言如Java时如果遇到了类似的输入输出乱码问题,则可能需要进一步检查程序内部对于字符串编码的支持状况以及IDE本身的环境变量设定等问题[^2];而对于C/C++项目来说,考虑到Windows平台默认使用GBK作为本地化编码标准的事实,适当调整编译指令以实现从源代码指定编码向目标平台预期编码之间的转换也是一种有效的策略[^3]。 最后,针对Python脚本执行过程中产生的终端输出乱码情形,除了上述提到的手动切换工作区全局偏好外,还可以考虑利用专门插件或者直接修改相关工具链的具体参数来进行优化,例如通过自定义`settings.json`内的解释器启动命令串达到强制指明I/O流所期望遵循的文字编码规则的目的[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值