1845_emacs中一个中文乱码问题分析解决
  tSnhejlQLwoc 2023年12月22日 27 0


Grey

全部学习内容汇总:GitHub - GreyZhang/editors_skills: Summary for some common editor skills I used.

1845_emacs中一个中文乱码问题分析解决

曾经有一次放弃过我自己的emacs配置,一个原因就是中文的支持。感觉我的配置跟其他人的配置显得有些格格不入,而调整尝试并不顺利。这一次,类似的问题重现,不过针对目前的问题现象总归是得到了临时的解决。

问题的出现

我为了规划自己的读书进度,把一个文本的书籍切分成了片段。其实整个过程没有什么问题,习惯了各种功能使用emacs,我于是直接emacs打开了其中的一个拆分片段。后来发现,拆分片段乱码。我接着查看了原始文件,原始文件其实也是乱码。这的确是一个看着比较眼熟的问题,具体的状态如下:

1845_emacs中一个中文乱码问题分析解决_编辑器

问题分析与探索

出现这样的问题,基本上可以直接确认这个就是一个编码识别的问题。我先用其他的文本工具打开了文本看了一下,发现其实是没有问题的。而通过其他的工具看得出来,这个文件的编码是GB2312。这样,基本上就有一个大概的排查方向了。我印象中自己的确是从李杀的网站上抄了一些字体设置,而里面是有UTF-8的一些设置的。

为了做一个对比测试,我利用其他的工具直接进行了一个文件副本的转码。直接把副本文件转码成了UTF-8的格式进行了存储,之后再用我的emacs打开,效果如下:

1845_emacs中一个中文乱码问题分析解决_编辑器_02

直接搜索现在配置中的一些编码转换命令,暂时没有找到什么支持。我也找了一些其他的编码配置直接抄过来做测试,不过都失败了,而且引入了对齐的配置之后让我的页面变得有些凌乱。

对比性测试

spacemacs

我恢复了我一直使用的spacemacs的配置,测试了一下识别这个文件是没有问题的。这么看,至少可以确认应该是有解决方案的。

emacs

我好奇,接下来直接去掉了我所有的emacs配置直接使用一个默认emacs配置打开这个文件,发现依然是没有问题的。

这么看下来,其实就很有意思了。看起来,我遇到的这个问题或许是因为我自己的配置引入的。接下来的排查,从我加入的一系列的编码的配置方面寻找即可。

实际探索体验以及效果

通过简单的对比,找到了如下的代码导致了现在的效果:

;; UTF-8 as default encoding
(set-language-environment "UTF-8")
(set-default-coding-systems 'utf-8-unix)
(set-terminal-coding-system 'utf-8-unix)

去掉之后,不仅GB2312,UTF-8也是可以正常读取显示的。

小结

我知道现在的配置肯定还是有很多问题的,单纯的字体解析显示的配置可能也是很有改进空间的。但是,目前的配置至少是临时满足了我自己的需要的。在整个hack的过程中,其实我们在追求自己期待的功能的时候,一路上这样打怪获取的乐趣也是值得我们铭记的。

Happy hacking!

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月22日 0

暂无评论

tSnhejlQLwoc