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

Scala中带变音符号的特殊字符打印问题求助

解决Scala在Windows下打印UTF-8特殊字符显示??的问题

核心原因分析

Windows控制台的字体大概率不支持你要打印的UTF-8特殊字符(比如äö这类变音符号),哪怕你切换了代码页到65001、给Scala指定了编码参数,字体不兼容还是会导致显示问号。另外,Scala的标准输出和Windows控制台的编码映射可能存在额外冲突。

实用解决方法

1. 更换控制台支持UTF-8的字体

  • 打开CMD或PowerShell,右键标题栏选「属性」→「字体」
  • 挑个支持Unicode的字体,比如Consolas、Lucida Console,部分系统可以选Segoe UI Symbol
  • 确认后重启控制台,再运行你的Scala程序

2. 直接用字节流输出绕开编码问题

不依赖Scala默认的输出编码,手动把字符串转成UTF-8字节输出:

import java.io.OutputStreamWriter
import java.nio.charset.StandardCharsets

val utf8Writer = new OutputStreamWriter(System.out, StandardCharsets.UTF_8)
utf8Writer.write("äö")
utf8Writer.flush()
utf8Writer.close()

3. 换PowerShell替代CMD运行

PowerShell对UTF-8的支持比传统CMD靠谱,试试这个流程:

  1. 执行chcp 65001(部分新版PowerShell可能不用这步)
  2. 运行Scala程序:scala -encoding utf-8 YourScalaFile.scala

4. 确认源文件编码是UTF-8

别漏了检查你的Scala源文件本身的编码:

  • 在VSCode右下角看编码显示,要是不是UTF-8,点击编码选择「通过编码保存」→「UTF-8」

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 15:29:58