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

Java Stream API使用中俄语文本显示乱码的问题求助

解决Java输出俄语文本乱码问题

俄语文本输出乱码(显示为����)的核心原因是控制台编码与Java程序的字符编码不匹配:Java内部字符串以UTF-16存储,但输出到控制台时会转换为系统默认编码,若该编码不支持西里尔字符(俄文)就会出现乱码。以下是针对不同场景的解决办法:

IDE环境(以IntelliJ IDEA为例)

  • 打开File → Settings,搜索File Encodings,将Global Encoding、Project Encoding、Default encoding for properties files全部设置为UTF-8
  • 在Run/Debug配置中,找到VM options,添加参数:-Dfile.encoding=UTF-8

命令行环境

  • Windows命令提示符:先执行chcp 65001切换到UTF-8编码,再运行程序
  • 编译和运行时指定编码:
    javac -encoding UTF-8 Library.java
    java -Dfile.encoding=UTF-8 Library
    

代码层面调整(可选,不推荐作为首选方案)

手动指定输出流的编码,替换原有的System.out.println逻辑:

package javalearn;

import java.util.ArrayList;
import java.util.Collections;
import java.io.PrintStream;
import java.io.UnsupportedEncodingException;

public class Library {

    public static void main(String[] args) {
        ArrayList<String> cities = new ArrayList<>();
        Collections.addAll(cities, 
                "Москва", "Лондон", "Мадрид", "Ереван",
                "Баку");
        
        try (PrintStream out = new PrintStream(System.out, true, "UTF-8")) {
            cities.stream()
                  .filter(s -> s.length() == 4)
                  .forEach(out::println);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 21:37:01