pythonchm中文
1. 谁有python 中文api帮助文档chm格式的啊
Python只有txt、pdf、epub、html款,没有chm款。
在此处可以在线查看Python文档:Python 文档(中文)
在此处可以下载txt、pdf、epub、html的Python 3.8.5文档:Python 3.8.5 文档下载
2. 在中文版 Windows 上查看 python.chm,如何消除乱码
解决中文Windows上Python chm乱码的难题
在Python 3.6及更高版本的Windows环境中,遇到一个令人头痛的问题——Python的官方文档(python.chm)在中文版Windows上显示异常,中文字符出现乱码。问题的核心在于,Python的HTML字符编码从Unicode转换为Windows-1252,而Windows自带的chm查看器hh.exe却依赖于IE浏览器的内核,而IE并不支持这种编码。
原因解析
Windows chm查看器默认使用GBK编码,而Python 3.6之后的chm文件使用Windows-1252,这导致了hh.exe无法正确识别。即便手动选择西欧(ISO)编码,也只是临时解决当前网页的问题,对hh.exe本身的编码处理并无帮助。此外,hh.exe的菜单功能可能因为编码问题而显得不完整。
寻找解决方案
为了解决这个问题,我们不得不寻找替代方案。例如,Sumatra PDF这样的第三方阅读器,虽然非IE内核,支持cp1252,但遗憾的是,它缺少索引和搜索功能。真正的挑战在于hh.exe的编码受系统区域设置影响,而Windows的全局system locale设计并不灵活,无法为每个进程独立设定。
尝试性地,我们可以使用GetACP()函数查看当前的codepage,但有时可能会得到1252而不是系统默认的936。微软曾提供AppLocale来解决这个问题,但已不再推荐。取而代之的是开源项目Locale Emulator (LE),它允许我们为特定进程设置独立的locale。通过LEInstaller.exe和LEGUI.exe,我们可以为hh.exe设置西欧(cp1252)这样的locale,通过创建快捷方式,用LEProc.exe启动hh.exe,以解决乱码问题。
值得注意的是,对于32-bit系统,可以直接使用hh.exe,但64-bit系统需要使用C:WindowsSysWOW64hh.exe。LE通过API钩子技术实现这一功能,32-bit系统相对容易,而64-bit系统则需要额外的技巧。这是在2018年9月29日的解决方案,随着时间的推移,可能需要更新或寻找新的技术来优化处理。
总结
面对Python chm在中文Windows上的乱码问题,需要跳出常规的框架,采用更灵活的工具和方法。通过Locale Emulator,我们找到了一种可能的路径,尽管64-bit系统处理存在挑战,但解决方案的探索从未停止。持续关注最新技术发展,或许能为我们找到一个更加完美的解决之道。