【问题标题】:Printing Hebrew UTF-8 produces giberish打印希伯来语 UTF-8 会产生乱码
【发布时间】:2018-02-28 23:34:47
【问题描述】:

我尝试打印一个搅拌器,但由于某种原因它变成了乱码。但是如果我把它放在一个在线的 utf 8 转换器中,它就可以工作(https://www.browserling.com/tools/utf8-decode)。 我得到的输出是:“תיכון דהשלי×~” 而不是:“תיכוןדהשליט”,这是我在网站上看到的,是原版的。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
print '\xd7\xaa\xd7\x99\xd7\x9b\xd7\x95\xd7\x9f \xd7\x93\xd7\x94 \xd7\xa9\xd7\x9c\xd7\x99\xd7\x98'

【问题讨论】:

  • 我在链接中的网站输出是正确的输出,出于某种原因,我得到了另一个结果(我将编辑我的问题以使其更清晰)。
  • print my_string.decode('utf8')
  • 是的,你是对的,有点我的错,我没有正确理解编码的整个概念,并认为我需要编码成 utf8 或类似的东西。
  • 我无法在 python 2.7 中重现:repl.it/repls/CompetitiveVictoriousDiskdrive
  • @chrisz 他在他的终端上运行它我认为这不是用 utf8 解码它而是用别的东西(我认为是 latin1)......(repl.it 可能在后面做一些编码魔力场景)

标签: python python-2.7 utf-8


【解决方案1】:

您只需要使用 utf8 编码将字节解码回 unicode ...默认情况下,它使用您的终端正在使用的任何内容(可能是 latin1)...您的终端 可能不支持所有字符 *强>(见https://repl.it/repls/OnlyRewardingKeyboardmacro

print '\xd7\xaa\xd7\x99\xd7\x9b\xd7\x95\xd7\x9f \xd7\x93\xd7\x94 \xd7\xa9\xd7\x9c\xd7\x99\xd7\x98'.decode('utf8')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-28
    • 1970-01-01
    • 2016-06-23
    • 2013-12-30
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    相关资源
    最近更新 更多