一个很简单的脚本, 使用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
现在不知道问题出在哪里了...求教