Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python docker容器中的utf-8解码错误_Python_Multithreading_Docker_Utf 8 - Fatal编程技术网

Python docker容器中的utf-8解码错误

Python docker容器中的utf-8解码错误,python,multithreading,docker,utf-8,Python,Multithreading,Docker,Utf 8,我被这个错误弄疯了 我有一个字节字符串: b'AXX 4 U I T T u N G AXK\nGlobus Fachm\xc3\xa4rkte GmbH & Co.KG\n\nBaumarkt 65719 Hofheim\n\nNordring 5\xe2\x80\x949\nTel :06192\xe2\x80\x94959680 Fax:95968444\n94\n\n#373\n2 SCHNITZEL 6.30 1\nSumme 6.30\nBAR 7.00\nR\xc3\xbc

我被这个错误弄疯了

我有一个字节字符串:

b'AXX 4 U I T T u N G AXK\nGlobus Fachm\xc3\xa4rkte GmbH & Co.KG\n\nBaumarkt 65719 Hofheim\n\nNordring 5\xe2\x80\x949\nTel :06192\xe2\x80\x94959680 Fax:95968444\n94\n\n#373\n2 SCHNITZEL 6.30 1\nSumme 6.30\nBAR 7.00\nR\xc3\xbcckgeld EUR 0.70\nMwSt Brutto 6.30\n19.00% MwSt Il 1.01\n\nNetto 5 29\n\n12000094 MW,\n\nVielen Dank f\xc3\xbcr Ihren Einkauf\nG\xc3\xbcltig zur Vorlage beim Finanzamt\nUST . I0\xe2\x80\x94Nummer : DE163646243\nAchtung: Bon vor W\xc3\xa4rme, N\xc3\xa4sse und\nSonneneinstrahlung sch\xc3\xbctzen.\n\nKasse/Bon Datum=lieferdatum Kassierer\n1619 12.01.17 12:45 56\n\x0c'
如果我尝试在本地阅读:

打印。解码“utf-8”。条带

我明白了:

AXX 4 U I T T u N G AXK
Globus Fachmärkte GmbH & Co.KG
Baumarkt 65719 Hofheim
Nordring 5—9
Tel :06192—959680 Fax:95968444
94
#373
2 SCHNITZEL 6.30 1
Summe 6.30
BAR 7.00
Rückgeld EUR 0.70
MwSt Brutto 6.30
19.00% MwSt Il 1.01
Netto 5 29
12000094 MW,
Vielen Dank für Ihren Einkauf
Gültig zur Vorlage beim Finanzamt
UST . I0—Nummer : DE163646243
Achtung: Bon vor Wärme, Nässe und
Sonneneinstrahlung schützen.
Kasse/Bon Datum=lieferdatum Kassierer
1619 12.01.17 12:45 56
但如果我尝试在服务器上,在Docker容器中执行此操作,则完全相同的代码printg.decode'utf-8'。我会得到以下错误:

Exception in thread Thread-3:
Traceback (most recent call last):
  File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.5/threading.py", line 862, in run
    self._target(*self._args, **self._kwargs)
  File "./main.py", line 140, in get_text_aux2
    text_blank = chuck_tesseract.image_to_string(blank_image, lang='deu', mode='1')
  File "./chuck_tesseract.py", line 137, in image_to_string
    print(g.decode('utf-8').strip())
UnicodeEncodeError: 'ascii' codec can't encode character '\xe4' in position 36: ordinal not in range(128)
这对我来说毫无意义

也许,问题出在线程内部,或者我必须在docker容器中设置一些内容

我读书,但它没有给我带来任何东西


也许有人也有同样的问题,可以帮助我

张艺伦告诉了我答案

RUN apt-get install locales...

RUN locale-gen de_DE.UTF-8

COPY ./default_locale /etc/default/locale
RUN chmod 0755 /etc/default/locale

ENV PYTHONIOENCODING=utf-8
ENV LC_ALL=de_DE.UTF-8
ENV LANG=de_DE.UTF-8
ENV LANGUAGE=de_DE.UTF-8
和默认的语言环境:


而且它工作得很好

你看过这个吗:?很好,谢谢!!只是在谷歌上搜索了很多,却没有找到
LANG="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_CTYPE="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"LC_ALL=
LC_ALL=de_DE.UTF-8