疑问求助,谢谢
请问:为什么系统默认的编码方式(比如GBK)和其.txt文件的存储编码方式(不通过Python存储的话,只有ANSI与utf)不一样(甚至都没有GBK的)?
难道.txt本身不算系统文件? .txt是系统文件,系统存储格式不是UTF-8,所以不兼容
如果帮到你了,就设成最佳吧{:10_287:}
系统都是编译为汇编代码 除了程序内部的文本没法编译成汇编而转换为指定文本编码 你指的是文本编码还有环境编码吧
windows的国际化编码默认使用utf16le方案,这也是windows本身的默认locale编码,无法修改为utf8 除非修改windows处理程序内部文本的源代码
windows还有一个编码是本地化locale编码 如果使用非utf16le编码它就会用这套本地化编码去读程序文本信息.
utf16le是为了提高效率,因为这个方案是固定2字节 不像utf8一样1-3可变,而且是倒着排的迎合cpu,据说cpu也是倒着读
但一些本地化的程序没有兼容意识 不使用utf16le编码而使用的是gbk等本地编码,导致拿到其它locale的机器上乱码.这个就没办法了,要想更改只能更改程序内部的文本编码 怎么改我也不清楚.或者用相关的工具启动程序虚拟它的本地locale.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Language
"Default"=""
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Locale
"(Default)"=""
只能修改本地locale不能修改windows默认locale,而且默认的locale是根本没必要修改的,因为默认的locale就是为了实现所有字符在同一套编码下.
这个键值不全 好像还有几个 你可以自己找找我只能帮到这了 最好直接修改注册表 intl面板有bug 从那修改会带来莫名错误
804简体中文,404繁体中文,409英文 其它charset代码你可以自己查e799bee5baa6e997aee7ad94e58685e5aeb931333262363130
改这个很无聊 也没用 默认编码没必要改 非utf编码你改了也没用,windows的界面程序还依赖二进制mui语言文件,不如装语言包.否则在日文韩文系统下改了本地locale,系统自带工具的界面还是非中文
以上是百度的结果
txt文件的编码可以设置的,和系统一致不一致没什么关系
如果帮助到你~就设置最佳吧~{:10_287:}
图片下方编码
本帖最后由 兰竹皋 于 2020-5-17 21:13 编辑图片下方编码 焦健鬼 发表于 2020-5-17 21:08
.txt是系统文件,系统存储格式不是UTF-8,所以不兼容
如果帮到你了,就设成最佳吧
我觉得你在扯{:10_249:} 抱歉,感觉还是不对啊,毕竟我电脑现在的locale编码是GBK而不是utf-16 额,,,鲁莽了
新人问问,怎么删帖,怎么取消最佳答案。。。 兰竹皋 发表于 2020-5-17 21:29
额,,,鲁莽了
新人问问,怎么删帖,怎么取消最佳答案。。。
emmm好像是无法取消的,删帖只有管理员可以删除 兰竹皋 发表于 2020-5-17 21:29
额,,,鲁莽了
新人问问,怎么删帖,怎么取消最佳答案。。。
https://baike.baidu.com/item/%E7%BC%96%E7%A0%81/80092?fr=aladdin
看百度百科吧 谢谢 首先说说一下ANSI和GBK的关系,ANSI是个大容器,装的简体中文就是GBK,装的繁体中文就是BIG5,所以你在windows自带的文本编辑器里看到的ANSI实际上就是GBK,实际上在windows7之前的系统,文本文件储存的默认格式其实是ANSI,也就是GBK码,在Windows10系统里,为了全球大一统,改为默认格式是新的UTF码了。
再说Python其实是支持多种编码的,encoding后面可以填写的各种编码有几十种,当然对于我们来说,GBK和UTF-8是最常见的两种,python已经快三十年了,早期默认支持ANSI,所以为了代码的兼容性,到现在都是默认使用ANSi,使用其他编码要额外指定,但是代码文件本身,也就是.py文件,从python3之后已经转为UTF-8来保存了。
页:
[1]