V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
purezhang
V2EX  ›  PowerShell

请教, powershell 脚本中使用中文,脚本文本存储的是 utf-8,运行后中文就是乱码。

  •  1
     
  •   purezhang · 2023-09-15 15:51:17 +08:00 · 1897 次点击
    这是一个创建于 468 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请教,powershell 脚本中使用中文,脚本文本存储的是 utf-8 ,运行后中文就是乱码。 搞不定啊。。。。。

    18 条回复    2023-09-16 14:28:44 +08:00
    purezhang
        1
    purezhang  
    OP
       2023-09-15 16:14:48 +08:00
    搞定了,不会出上传图片。

    win11
    设置,时间和语言,管理语言设置,区域,管理,非 unicode 程序的语言,
    勾选:“Beta 版:使用 Unicode utf8 提供全球语言支持”
    codehz
        2
    codehz  
       2023-09-15 16:29:26 +08:00
    然后其他中文脚本就炸了(
    这玩意只能二选一(
    awen233333
        3
    awen233333  
       2023-09-15 16:34:41 +08:00 via iPhone
    前不久我也遇到了,没找到解决办法,设置语言的话只能设置自己的电脑,如果脚本要在其他电脑执行就不知道咋搞了
    thinkershare
        4
    thinkershare  
       2023-09-15 16:38:29 +08:00   ❤️ 1
    重写报错一下脚本,将编码改为 GB2312 ,不要改操作系统的 UTF-8, 很多旧软件会炸掉。
    mingl0280
        5
    mingl0280  
       2023-09-15 16:40:30 +08:00 via Android
    你跑输出之前执行一下 mode con cp select=65001 或者 chcp 65001
    xiangyuecn
        6
    xiangyuecn  
       2023-09-15 16:40:43 +08:00
    文件开头 chcp 65001 切换代码页
    mingl0280
        7
    mingl0280  
       2023-09-15 16:43:02 +08:00 via Android   ❤️ 1
    然后还可能要改一下:
    $OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = [Text.UTF8Encoding]::UTF8
    kid1412621
        8
    kid1412621  
       2023-09-15 18:08:54 +08:00 via iPhone
    zsj1029
        9
    zsj1029  
       2023-09-15 18:33:03 +08:00
    感谢,很久以前搞过,重装忘记配置了
    最新发现 git bash 中文乱码,修改 Unicode 果然好了
    再次表示感谢
    purezhang
        10
    purezhang  
    OP
       2023-09-15 18:40:37 +08:00
    @codehz 额,微软搞不定吗?
    sub166
        11
    sub166  
       2023-09-15 18:48:03 +08:00
    powershell7 默认 utf8
    YGHMXFAL
        12
    YGHMXFAL  
       2023-09-15 19:07:17 +08:00
    PS 中终端输出好像是 UTF-16LE,你的脚本以这个编码存储就好了,楼主试试
    YGHMXFAL
        13
    YGHMXFAL  
       2023-09-15 19:07:54 +08:00
    你 1 楼那个操作,干扰范围太广了,以后还有坑
    miaomiao888
        14
    miaomiao888  
       2023-09-15 19:17:05 +08:00
    @purezhang 然后运行有些旧软件可能又乱码
    微软这个设置很糟糕,而且修改还得重启生效,win7 好像都没这些问题。
    mudssky
        15
    mudssky  
       2023-09-15 21:45:32 +08:00
    我好像最近一直没遇到过这个问题,可能是因为我用的是 powershell core
    pigspy
        16
    pigspy  
       2023-09-15 22:18:59 +08:00
    “Beta 版:使用 Unicode utf8 提供全球语言支持”

    这个操作坑很大,很多文件可能会变成乱码,比如 office 的 excel ,我试过
    iorilu
        17
    iorilu  
       2023-09-15 22:30:29 +08:00
    微软得编码问题是个历史难题
    dant
        18
    dant  
       2023-09-16 14:28:44 +08:00   ❤️ 1
    保存时需要带 BOM
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4152 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 01:01 · PVG 09:01 · LAX 17:01 · JFK 20:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.