YStudio Y++

进程类:中文不乱码

Y++ / YStudio 开发文档 · 一点滴

进程类 按 UTF-8 读管道。CMD 默认常是系统代码页(如 GBK),dir/echo 中文 会花。优先 PowerShell,或先 chcp 65001。

窗口需有:按钮1、文本框1(多行)。

函数 按钮1.单击(整数 X, 整数 Y) {
    进程类 p
    如果 (p.启动("powershell.exe", "-NoProfile -Command \"[Console]::OutputEncoding = [Text.UTF8Encoding]::new(); Write-Output '你好,Y++'\"") == 假) {
        文本框1.内容 = p.取错误()
        返回 ()
    }
    文本框1.内容 = p.读全部(8000)
}

CMD 一次性命令(先切 UTF-8 代码页):

进程类 p
如果 (p.启动("cmd.exe", "/c chcp 65001>nul & echo 你好")) {
    文本框1.内容 = p.读全部(8000)
}
错误 正确
启动("cmd.exe", "/c dir") 直接读中文目录 PowerShell,或 /c chcp 65001>nul & 命令
第一参写成 cmd /c … 启动("cmd.exe", "/c …")
交互壳里 读全部() 等本条结束 壳不退出会一直等;一次性命令用 /c + 读全部

对照:process-obj.md · thread-back-to-ui(命令很久时不要卡按钮)