中unicode变量的问题subprocess.check_输出Python和姜

2024-07-08 10:02:06 发布

您现在位置:Python中文网/ 问答频道 /正文

最近在我的工作中,我们带来了一台服务器并对其进行了配置。只是把语境化。现在的问题是我用Java编写代码(Cogroo,葡萄牙语语法检查器),我们用Python编写了一些代码,为了使这两种代码一起工作,我在Python代码中调用jar文件。当我在我的本地机器上工作时,一切都很好,当我把服务器a放进去时有一些问题。在

>>> a = u"ele anda à cavalo"
>>> print(type(a))
>>> <type 'unicode'>
>>> a
u'ele anda \xe0 cavalo'
>>> print(a)
ele anda à cavalo

在我的本地机器和服务器终端上,它工作得很好,但是如果我在Python脚本上做同样的操作,它会给我带来一个错误,比如“ascii'codec cannot encode character 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是一个没有特殊字符的istring,比如a menino它会返回一个输出,比如Os行列式concordam em n?mero(单数或复数)e em g?nero(mangorito ou feminino)com o substivivo a que se referem。我需要带重音符号的输出,第二个错误是当使用带有重音符号的字符串时,Ele andaácavalo它会使这个输出验证一次重复??o de palavras.但正确的输出是o sinal indicatio de crase indica que temos“a”+“a”expressos em um sóa”。我的意思是“我的意思是说,我的意思是说,我的意思是说,我的意思是说,我的意思是说,我的意思是说,我的意思是说,我的意思是说,我的意思是说,我的意思是说我的意思。Portanto,não ocorre crase antes de palavras manganas。我知道问题是因为服务器上和脚本上特定的Python或django无法翻译unicode(UTF-8)并在屏幕上甚至在变量上打印。我试着做cd.encode("utf-8")auxTextPure.encode("utf-8")auxTextPure.decode("utf-8")和其他一些代码,比如import codecs,使用这个编解码器,我试图在互联网上找到这个问题,但是在任何地方我都能找到解决这个问题的方法,有人能帮我吗?非常感谢,很抱歉我的英语不好。 利安德罗·科斯塔瓦拉多


Tags: 字符串代码服务器脚本varunicodecdutf
1条回答
网友
1楼 · 发布于 2024-07-08 10:02:06

一个字符串应该先被解码成UTF-8,然后再进行编码,反之亦然。你永远不知道字符串最初是编码还是解码。在

1。在

a = u"ele anda à cavalo"
print a.encode('UTF-8')

一。在

^{pr2}$

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')

一。在

^{pr2}$

4。在

a = u"ele anda à cavalo"
print a.encode('UTF-8').decode('UTF-8').encode('UTF-8')

一。在

^{pr2}$

很有趣,不是吗?在

相关问题 更多 >

    热门问题