【问题标题】:Python decode unknown characterPython解码未知字符
【发布时间】:2017-12-22 12:31:50
【问题描述】:

我正在尝试解码以下内容: UKLTD� For 转换为 utf-8 (或其他任何东西),但我无法锻炼如何去做并不断收到类似的错误

'ascii' 编解码器无法解码位置 8 中的字节 0xae:序数不在 范围(128)

我正在读取 csv 并具有以下内容:

with open(path_to_file, 'rb') as f:
    reader = csv.reader(f)
    for row in reader:
        order = Order(
           ...
           product_name = row[11].encode('utf-8'),
           ...
        )
        order.save()

如果我保留了字符串的其余部分,我现在很乐意忽略该字符。

【问题讨论】:

  • 0xae 也不是有效的 UTF-8 字节。它可能是另一个字符集(也许是 ISO-8859-1?)你知道这个字符应该是什么吗?在 ISO-8859-1 中是ⓡ(注册符号)。
  • 使用 try except 和 in except 使用 product_name = row[11].encode('utf-16')
  • @HenryM 你可以回答你自己的问题。这样,其他人也可能会得到帮助。

标签: python django utf-8 decode


【解决方案1】:

感谢@BartFriederichs。

解决方案是:product_name = row[11].decode('iso-8859-1').encode('utf8')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 2017-11-01
    相关资源
    最近更新 更多