[英]why is Java Processbuilder 4000 times slower at running commands then Python Subprocess.check_output
[英]Problems with unicode variables in subprocess.check_output Python with Django
最近在我的工作中,我们带来了一台服务器并对其进行了配置。 它只是为了上下文。 现在的问题是我正在使用Java代码(Cogroo,葡萄牙语中的语法检查器)工作,而我们在Python中有一些代码,为了使这两个代码一起工作,我在Python代码中调用了jar文件。 当我在本地计算机上工作时,一切正常,当我将服务器放入服务器时,会遇到一些麻烦。
>>> a = u"ele anda à cavalo"
>>> print(type(a))
>>> <type 'unicode'>
>>> a
u'ele anda \xe0 cavalo'
>>> print(a)
ele anda à cavalo
在我的本地计算机和服务器终端上,它工作正常,但是如果我在Python脚本上执行相同操作,则会给我带来类似“ ascii'编解码器无法编码字符u'\\ xe0'print python”的错误。 在脚本中,我什至无法打印unicode字符串。 比当我尝试调用output = subprocess.check_output(cd.encode("utf-8"), shell=True)
var cd具有Java代码和路径cd = 'java -jar path/file.jar GrammarChecker -country br -lang pt -text "' + auxTextPure + '"'
var auxTextPure
始终是unicode字符串。
看那是两个问题,第一个是当var auxTextPure
是不带像A menino这样的特殊字符的istring时,它返回的输出是Os determinantes concordam em n?mero(单数或复数)和em g?nero(masculino ou feminino)可替代的实体。 我需要带重音的输出,第二个错误是当使用带重音的字符串(如Ele andaàcavalo)时,它会使此输出Verifique重复一次。 但是正确的输出是O sinal indicativo de crase indica que temos“ a” +“ a” expressos em umsó“à”。 Somente ocorre crase quandoháencontro depreposição“ a” com artigo ou pronome demonstrativo“ a” /“ as”。 波尔图托,nãoocorre折痕antes de palavras masculinas。 带着重点,我知道问题是因为服务器上的Python或django以及脚本上特定的不能翻译unicode(UTF-8)并不能在屏幕上甚至在变量上打印。 我尝试制作cd.encode("utf-8")
auxTextPure.encode("utf-8")
auxTextPure.decode("utf-8")
和其他一些类似import codecs
代码,并使用此编解码器,我尝试查找在互联网上出现此问题,但在任何地方我都能找到解决方法,任何人都可以帮助我吗? 非常感谢,抱歉我的英语不好。 Leandro CostaValadão。
字符串应首先解码为UTF-8,然后再编码,反之亦然。 您永远不知道该字符串是原始编码还是解码。
1。
a = u"ele anda à cavalo"
print a.encode('UTF-8')
。
ele anda à cavalo
2。
a = u"ele anda à cavalo"
print a.decode('UTF-8')
。
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe0' in position 9: ordinal not in range(128)
3。
a = u"ele anda à cavalo"
print a.encode('UTF-8').decode('UTF-8')
。
ele anda à cavalo
4。
a = u"ele anda à cavalo"
print a.encode('UTF-8').decode('UTF-8').encode('UTF-8')
。
ele anda à cavalo
好笑,不是吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.