"LookupError: unknown encoding: cp65001"及命令行无法输入中文问题

  • 今天在win10下装完python和pip后,发现在python中运行任何指令都会报错——”LookupError: unknown encoding: cp65001”的错误提示,并且鼠标焦点在命令行窗口内时,win10自带输入法无法切换为中文模式。或许装其他输入法会有用,但一来并不想委屈求全,二来料想也不能解决报错问题。于是到处找办法。找来找去就是那一篇文章,真是一个人写,十个人抄,还都不管能不能行。找到两个质量略好的——stackoverflow1stackoverflow2。总之是代码页(codepage)的问题,在cmd下chcp命令(大概是change codepage?)可查看当前代码页,chcp nnn可改变当前使用的代码页。
    常用有936-GBK编码,437-美国英语,还有这个出问题的65001-utf-8编码。
    所以解决报错可以每次打开命令行都用chcp 936来更换当前代码页,也可以在属性和默认值里修改。然而修改后重启cmd查看属性还是65001的代码页。我猜是个bug吧。那两个帖子描述的解决方案不够优雅,所以几乎是放弃了,重装的心都有了。然而,然而,我想到管理员命令行是正常的,于是又有了希望。打开注册表,定位到”HKEY_CURRENT_USER\Console”,对比正常与非正常的键值对,发现只多了一个codepage键,于是直接修改CodePage键的值为3a8(936的十六进制值),然后重启命令行,啊,只如初见。
C:\Users\haha>chcp /?  
显示或设置活动代码页编号。  
CHCP [nnn]  
    nnn   指定代码页编号。  
不带参数键入 CHCP 以显示活动代码页编号。
  • 欢心得意之际发现命令行从前往后写时,如果后面有字就会覆盖掉,这个情况word也有,但一直忍着。查了一下发现是插入模式下不会有这个问题,改写模式会有,于是在属性里勾选插入模式。啊,满意。
posted @   findneo  阅读(1776)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥
点击右上角即可分享
微信分享提示