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

Kotlin桌面Compose应用主方法参数字符串编码错误问题

Compose for Desktop传递含特殊编码文件名参数时乱码问题

我用Kotlin和Compose for Desktop开发一款小型音乐播放器,遇到参数乱码问题:有一首文件名带特殊编码的歌曲——08. ±ªþ³§ (feat. Yonaka).mp3。

我的build配置代码如下:

compose.desktop {
    application {
        mainClass = "MainKt"

        nativeDistributions {
            val encodedArgument = "08. ±ªþ³§ (feat. Yonaka).mp3"
            args += listOf(encodedArgument)

        }
    }
}

但在主函数接收参数时,得到的内容是08. ±??³§ (feat. Yonaka).mp3:

fun main(args: Array<String>) = application {
    val arg = args[0] // 此处得到值 "08. ±??³§ (feat. Yonaka).mp3"

}

这直接导致程序因找不到文件崩溃,我尝试转成UTF-8等多种字符集,都没解决问题。


问题解决更新

最终找到了解决方案:

  • 在Windows系统中,需将「区域设置」>「当前系统区域」改为「英语(美国)」,这会改变CMD对Unicode字符的转译方式,修复参数乱码问题。
  • 另外,由于该参数需要保存到文件后再次读取,必须使用ISO_8859_1字符集保存才能正确读取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 06:35:59