【问题标题】:Decoding strings from textfile从文本文件中解码字符串
【发布时间】:2018-08-08 08:11:56
【问题描述】:

我有一个文本文件正在另一个应用程序的脚本中读取。 这是记事本中的样子:

Одинцовская РЭС: М.О., Одинцовский район
Климовская РЭС: М.О., г.о. Подольск
Кульшовская РЭС: М.О., г.о. Подольск

这个文件有两件事需要: 1. 创建一个值的字典,用':'分隔。我在脚本的另一部分使用这个字典 2. 允许用户选择想要的值

这是用户在启动脚本时看到的内容。 选择某个值时,我必须在字典中使用它。但问题是选择是unicode 格式(因为ArcGIS 中的脚本构建功能),而字典的键是str。 所以我需要字典中的一个值,看起来像 '\xce\xe4\xe8\xed\xf6\xee\xe2\xf1\xea\xe0\xff \xd0\xdd\xd1' 转换为 unicode。但是当我创建.encode('utf-8') 时会抛出一个错误

UnicodeDecodeError: 'ascii' codec can't decode byte 0xce in position 0: ordinal not in range(128)

【问题讨论】:

    标签: python string unicode encoding


    【解决方案1】:

    这应该可以工作

    >>> c = b'\xce\xe4\xe8\xed\xf6\xee\xe2\xf1\xea\xe0\xff \xd0\xdd\xd1'
    >>> c
    b'\xce\xe4\xe8\xed\xf6\xee\xe2\xf1\xea\xe0\xff \xd0\xdd\xd1'
    >>> c.decode('unicode_escape')
    'Îäèíöîâñêàÿ ÐÝÑ'
    

    b'' 前缀表示 8 位字节序列。

    看看 SOread russian characters

    【讨论】:

    • 很好,行得通!但是有没有一种方法,即new_word = b(c)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多