【问题标题】:Batch: enforce language批处理:强制语言
【发布时间】:2018-09-22 18:39:42
【问题描述】:

是否有任何命令对计算机说“请用英语”

我不想像here 这样更改系统区域设置,我只需要在代码执行中临时更改语言即可。


背景故事:

我正在编写一个脚本来自动报告系统信息,以将它们输入到数据库中,该数据库本应在几年前设置并从那时起维护。

问题是,例如,systeminfo.exe 在我的机器上运行时会返回带有英文标签的行,而在我同事的机器上运行时会返回带有捷克语标签的行。在两台机器上,捷克字母都被错误编码。两台机器具有相同的 System Locale 和 Input locale (cs;¬eçtina),第一台是运行 Win10Pro 的戴尔,第二台是运行 Win7Pro SP1 的联想。

幸运的是,我不需要关心关键部分的捷克字母。不幸的是,我需要解析报告以获取我实际需要的数据(50 多行中的 5 行),并且没有错误编码的行非常少。

报告中的两行作为systeminfo.exe 的一部分返回:

我的机器返回:

System Locale:             cs;¬eçtina
Input Locale:              cs;¬eçtina

同事的机器返回:

Mˇstnˇ nastavenˇ syst‚mu:            cs;¬eçtina
N rodnˇ prostýedˇ:                   cs;¬eçtina

我希望他们都返回 System Locale 作为标签。

【问题讨论】:

    标签: output locale batch-processing


    【解决方案1】:

    我真的不明白你的意思。 但请尝试将以下内容添加到批处理脚本的开头:

    chcp 65001
    

    这会将默认编码设置为 UTF-8。

    【讨论】:

    • 感谢您的建议,但这个开关弄乱了输出,更多地将奇怪的符号渲染为千位分隔符。
    猜你喜欢
    • 1970-01-01
    • 2014-04-07
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    • 1970-01-01
    • 2011-01-06
    • 1970-01-01
    相关资源
    最近更新 更多