python是支持utf-8编码的,但是为毛用open打开文件是以ansi编码方式打开?
坑得我好苦呀。
记下经过备忘。
花了好久写了一个使自己不再需要做重复劳动的小软件,大功就要造成了,tex文档已经生成,只差编译tex文档生成pdf的时候,发现死活不能编译通过,但是用vim打开,次次都能编译通过,太神奇了,命令完全一样,竟然一个能编译通过一个不能,仔细检查命令N遍,确实完全一样,有时在cmd里输入命令也能编译通过,真是神奇了,vim难道还有如此神奇的功能,保证xetex能够正确编译tex?这不科学呀。
前后检查了N遍,都没有发现问题,后来一下子又想到编码方式,自己的vim是配置成自动将编译转换成utf-8的,会不会这个原因呢?马上用这个测试版的软件,生成了一个tex文档,用记事本打开一看,真不是utf-8编译方式,是ansi,在cmd下试着输入命令编译,果然通不过,将tex文档另存为utf-8编码方式,再试一次,果不其然,编译通过,正确生成并打开pdf。
然后将打开文件的函数里加入encoding = 'utf-8'
-
open(filename, 'w', encoding = 'utf-8')
重新运行一次,OK,正确生成并打开pdf。。
尼玛呀,python你既然支持utf-8,utf-8是以后的编码方向,open函数的默认值竟然不是utf-8?害我做了多少重复劳动呀。
真坑爹,记下耻辱的一笔,备忘。以后不能范这种低级错误。
虽然被坑,但是还要顶xetex,只支持utf-8,ansi编码方式就是不给通过,以后就应该淘汰这种落后的,给世界带来不和谐的编码方式,统一为utf-8。
阅读(1540) | 评论(0) | 转发(0) |