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

目前简体中文的 Windows 系统记事本默认编码是 GBK 吗?

  •  
  •   xiaopanzi · 2023-04-30 17:24:00 +08:00 · 5664 次点击
    这是一个创建于 607 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近正在研究字符编码的相关问题,看到相关资料中提到:

    The Windows command prompt uses CP936 as the default code page for simplified Chinese installations.

    这里的 CP936 是 Windows 的 GBK 内码表。

    Windows 系统默认字符编码为 gbk 编码.

    但也有资料提到:从 Windows 10 开始,默认编码统一成 UTF-8 了。

    我两台机器分别是 macOS 和 Manjaro ,里面安装的虚拟机是英文 Windows 11 。

    所以,想请在使用简体中文 Windows的朋友帮忙核实一下:目前简体中文 Windows 中默认的编码是什么?可以使用记事本软件输入“你好”,保存后查看占用的字节数,然后回复“<你的 Windows 系统>, <x>字节”。谢谢!


    或者参考如何查看 windows 操作系统的默认编码?,回复“<chcp 的结果>”。

    31 条回复    2023-05-01 10:37:27 +08:00
    Dukec
        1
    Dukec  
       2023-04-30 17:30:41 +08:00
    UTF-8
    CatCode
        2
    CatCode  
       2023-04-30 17:34:57 +08:00
    Win10 不知道
    Win11 22H2 简体中文版 记事本 已经默认 UTF-8 编码 不含 BOM
    datou
        3
    datou  
       2023-04-30 17:36:54 +08:00
    win11 最新版的记事本 11.2303.40.0 在另存为界面默认是 UTF-8
    salmon5
        4
    salmon5  
       2023-04-30 17:37:04 +08:00   ❤️ 1
    据我所知,Windows 简体中文 10-11 ,默认都还是“活动代码页: 936",GBK 编码,UTF-8 还是 beta 默认没开启。
    iorilu
        5
    iorilu  
       2023-04-30 17:41:35 +08:00   ❤️ 1
    记事本是 utf-8

    但 cmd 执行 bat 文件还是默认 gbk 吧
    Bingchunmoli
        6
    Bingchunmoli  
       2023-04-30 17:42:14 +08:00 via Android
    记事本 utf8 但是系统编码和 cmd 都是 gbk
    xiaopanzi
        7
    xiaopanzi  
    OP
       2023-04-30 17:49:21 +08:00
    谢谢各位的回复。感觉基本搞清楚了:默认的系统或者终端的编码还是和所在区域有关(比如大陆的 GBK );而记事本等软件保存的默认编码使用的是 UTF-8 。
    iorilu
        8
    iorilu  
       2023-04-30 17:50:06 +08:00
    但 python 检测的系统编码也是 utf-8

    sys.getdefaultencoding()

    所以还有不统一地方

    目前据我所知,除了 bat 文件要注意编码,其他地方 windows 确实已经默认 utf-8
    missdeer
        9
    missdeer  
       2023-04-30 18:12:08 +08:00 via Android
    不是的,微软系的软件很多是根据系统设置还决定默认编码的
    zictos
        10
    zictos  
       2023-04-30 18:12:33 +08:00
    win10 就是 utf-8 了,打开 notepad ,选择另存为在保存时可以看到显示了 utf-8
    air00dd
        11
    air00dd  
       2023-04-30 19:03:15 +08:00
    旧文档:

    Code Pages
    The number of supported code pages was greatly increased in Windows 7.
    For a full list of code pages supported on your machine, run NLSINFO (Resource Kit Tools).

    Files saved in Windows Notepad will be in ANSI format by default, but can also be saved as Unicode UTF-16LE or UTF -8 and for unicode files, will include a BOM.
    A BOM will make a batch file not executable on Windows, so batch files must be saved as ANSI, not Unicode.
    ysc3839
        12
    ysc3839  
       2023-04-30 19:20:29 +08:00 via Android
    不知道,但是可以点保存,看看下面默认选的是什么
    520discuz
        13
    520discuz  
       2023-04-30 19:22:09 +08:00
    win7
    4 字节 (4 字节)
    ysc3839
        14
    ysc3839  
       2023-04-30 19:22:47 +08:00 via Android
    SpecterShell
        15
    SpecterShell  
       2023-04-30 20:33:52 +08:00
    看情况,Windows 10 1903 后软件可以设置在 UTF-8 代码页下运行,不过可能会导致在与其它软件交互时出现问题。
    SpecterShell
        16
    SpecterShell  
       2023-04-30 20:34:26 +08:00
    bs10081
        17
    bs10081  
       2023-04-30 21:17:41 +08:00
    最討厭的就是,Windows 的編碼問題了,上學的時候,大家發過來的文件,很大概率都會因為編碼問題而產生亂碼
    nightwitch
        18
    nightwitch  
       2023-04-30 21:33:57 +08:00 via Android
    命令行的 cp936 微软大概率永远不会改了,改了默认的话以前积攒的老脚本(包含 gbk 字符的)都会出问题
    duke807
        19
    duke807  
       2023-04-30 22:26:38 +08:00 via Android
    新版本 win 和 老版本 win 编码不一致,会相互乱码吗?
    signmeup
        20
    signmeup  
       2023-04-30 22:43:07 +08:00
    如果想在 Windows 上用 UTF8 ,在 Administrative language settings 里勾一下 Beta: Use Unicode UTF-8 for worldwide language
    部分(老)软件乱码可用 Locale Emulator 解决
    codehz
        21
    codehz  
       2023-04-30 23:27:37 +08:00
    说起来 bat 也是有编码问题的(
    记事本默认 utf8 的话,只要系统没开实验性 utf8 ,默认保存出来的 bat 也是会炸的(有 ascii 范围外字符的情况下),反过来也是一样,开了实验性 utf8 ,那网上一大堆 bat 就用不了了
    结论:不要用 bat (
    datou
        22
    datou  
       2023-04-30 23:34:07 +08:00
    @salmon5 win11 的 windows notepad 是 uwp 了,可以在 windows 商店更新
    lns103
        23
    lns103  
       2023-05-01 00:27:41 +08:00 via Android
    @codehz bat 文件可以加 chcp 65001 解决吗😂
    microka
        24
    microka  
       2023-05-01 00:48:38 +08:00
    @lns103 #23 可以的。
    crab
        25
    crab  
       2023-05-01 00:50:57 +08:00
    @bs10081 主要是加了那个 BOM 头。
    realpg
        26
    realpg  
       2023-05-01 00:59:12 +08:00
    @codehz #21
    @iorilu #5
    @Bingchunmoli #6

    @nightwitch #18

    如果你用 win11 记事本写 bat ,直接在第一行加上
    chcp 65001
    然后默认保存成 utf8 no bom 格式

    就可以正常处理 bat 里面的 utf8 的字符了
    n18255447846
        27
    n18255447846  
       2023-05-01 03:39:38 +08:00
    我的 win10 22h2 版本,记得好像之前 20h1 早就把记事本默认编码改成 utf-8 了。以前记事本是 ansi ,中文 windows 环境就 cp936 。命令行 cmd.exe 一直都是 cp936 ,除非手动 chcp 。gbk 比 cp936 出的晚,能显示的字符多一小丢。
    bs10081
        28
    bs10081  
       2023-05-01 08:27:20 +08:00
    @crab #25 有加 BOM 頭才能判斷文件的格式吧?
    zed1018
        29
    zed1018  
       2023-05-01 09:07:41 +08:00
    win11 moment2 utf8
    ryansvn
        30
    ryansvn  
       2023-05-01 09:38:33 +08:00 via Android
    我也是深受其害,刚装上 win11 的时候,原来的 bat 死活不运行
    neutrino
        31
    neutrino  
       2023-05-01 10:37:27 +08:00 via Android
    改成 UTF8 以后一堆中文软件都不能用了乱码
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3218 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 10:47 · PVG 18:47 · LAX 02:47 · JFK 05:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.