最近正在研究字符编码的相关问题,看到相关资料中提到:
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 的结果>”。
1
Dukec 2023-04-30 17:30:41 +08:00
UTF-8
|
2
CatCode 2023-04-30 17:34:57 +08:00
Win10 不知道
Win11 22H2 简体中文版 记事本 已经默认 UTF-8 编码 不含 BOM |
3
datou 2023-04-30 17:36:54 +08:00
win11 最新版的记事本 11.2303.40.0 在另存为界面默认是 UTF-8
|
4
salmon5 2023-04-30 17:37:04 +08:00 1
据我所知,Windows 简体中文 10-11 ,默认都还是“活动代码页: 936",GBK 编码,UTF-8 还是 beta 默认没开启。
|
5
iorilu 2023-04-30 17:41:35 +08:00 1
记事本是 utf-8
但 cmd 执行 bat 文件还是默认 gbk 吧 |
6
Bingchunmoli 2023-04-30 17:42:14 +08:00 via Android
记事本 utf8 但是系统编码和 cmd 都是 gbk
|
7
xiaopanzi OP 谢谢各位的回复。感觉基本搞清楚了:默认的系统或者终端的编码还是和所在区域有关(比如大陆的 GBK );而记事本等软件保存的默认编码使用的是 UTF-8 。
|
8
iorilu 2023-04-30 17:50:06 +08:00
但 python 检测的系统编码也是 utf-8
sys.getdefaultencoding() 所以还有不统一地方 目前据我所知,除了 bat 文件要注意编码,其他地方 windows 确实已经默认 utf-8 |
9
missdeer 2023-04-30 18:12:08 +08:00 via Android
不是的,微软系的软件很多是根据系统设置还决定默认编码的
|
10
zictos 2023-04-30 18:12:33 +08:00
win10 就是 utf-8 了,打开 notepad ,选择另存为在保存时可以看到显示了 utf-8
|
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. |
12
ysc3839 2023-04-30 19:20:29 +08:00 via Android
不知道,但是可以点保存,看看下面默认选的是什么
|
13
520discuz 2023-04-30 19:22:09 +08:00
win7
4 字节 (4 字节) |
14
ysc3839 2023-04-30 19:22:47 +08:00 via Android
|
15
SpecterShell 2023-04-30 20:33:52 +08:00
|
16
SpecterShell 2023-04-30 20:34:26 +08:00
|
17
bs10081 2023-04-30 21:17:41 +08:00
最討厭的就是,Windows 的編碼問題了,上學的時候,大家發過來的文件,很大概率都會因為編碼問題而產生亂碼
|
18
nightwitch 2023-04-30 21:33:57 +08:00 via Android
命令行的 cp936 微软大概率永远不会改了,改了默认的话以前积攒的老脚本(包含 gbk 字符的)都会出问题
|
19
duke807 2023-04-30 22:26:38 +08:00 via Android
新版本 win 和 老版本 win 编码不一致,会相互乱码吗?
|
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 解决 |
21
codehz 2023-04-30 23:27:37 +08:00
说起来 bat 也是有编码问题的(
记事本默认 utf8 的话,只要系统没开实验性 utf8 ,默认保存出来的 bat 也是会炸的(有 ascii 范围外字符的情况下),反过来也是一样,开了实验性 utf8 ,那网上一大堆 bat 就用不了了 结论:不要用 bat ( |
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 的字符了 |
27
n18255447846 2023-05-01 03:39:38 +08:00
我的 win10 22h2 版本,记得好像之前 20h1 早就把记事本默认编码改成 utf-8 了。以前记事本是 ansi ,中文 windows 环境就 cp936 。命令行 cmd.exe 一直都是 cp936 ,除非手动 chcp 。gbk 比 cp936 出的晚,能显示的字符多一小丢。
|
29
zed1018 2023-05-01 09:07:41 +08:00
win11 moment2 utf8
|
30
ryansvn 2023-05-01 09:38:33 +08:00 via Android
我也是深受其害,刚装上 win11 的时候,原来的 bat 死活不运行
|
31
neutrino 2023-05-01 10:37:27 +08:00 via Android
改成 UTF8 以后一堆中文软件都不能用了乱码
|