一个很简单的脚本, 使用os.system()
执行了一句 Java 语句, 这句 Java 的作用就是解析 pdf 文件, 输出文本到一个 csv 文件.
问题是这个脚本如果在 PyCharm 里跑的话, 写入的编码就是 ASCII, 打开中文就是问号; 如果在终端直接运行, 写入的编码就是 UTF-8, 中文显示一切正常
PyCharm 中有关 encoding 的设置都是 utf-8.
代码如下
# coding=utf-8
import os
import chardet
cmd = 'java -jar ~/tabula.jar ~/80032035 陈勇.pdf -p all -n -o pdf.csv'
os.system(cmd)
f = open("pdf.csv", 'rb')
for l in f.readlines(): # 这两句检查文本编码方式
print chardet.detect(l)
在 PyCharm 中运行的话, pdf.csv 是这样的:
{'confidence': 1.0, 'encoding': 'ascii'}
输出显示编码方式是 ASCII
如果在终端运行的话, pdf.csv 是这样的:
{'confidence': 0.99, 'encoding': 'utf-8'}
输出显示编码方式是 UTF-8
现在不知道问题出在哪里了...求教
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.