悼良会之永绝兮 2021-10-13 02:59 采纳率: 0%
浏览 38

含有🔥、🌹、👏这类符号的文本如何使用python读取和显示?

🔥、🌹、👏这类符号在win10自带的记事本中显示乱码,在notepad++中直接显示编码。在使用python读取含有这类符号的文本(编码方式为UTF-8)时,使用UTF-8编码方式读取报编码错误,但是使用ISO-8859-1编码就能去读成功。然后特地把这些符号的二进制编码摘出来试着用UTF-8解码,还是报编码错误。

img

# 一 读取时编码报错
with open('./utf8.csv', 'r', encoding='utf-8') as f:
    text = f.read()
运行后提示错误如下:
Traceback (most recent call last):
  File "G:/PycharmProject/audit/utf8_to_ansi/test.py", line 27, in <module>
    text = f.read()
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xed in position 4037: invalid continuation byte
# 二 单独编码时报错
b1 = b'\xF0\x9F\x91\x8F'
b2= b'\xF0\x9F\x94\xA5'
print(b1)
print(b2)
print(b2.decode('utf-8'))
运行后错误提示如下:
Traceback (most recent call last):
  File "G:/PycharmProject/audit/utf8_to_ansi/test.py", line 24, in <module>
    print(b'\xed\xa0\xbd\xed\xb4\xa5'.decode('utf-8'))
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xed in position 0: invalid continuation byte

  • 写回答

2条回答 默认 最新

  • CSDN专家-HGJ 2021-10-13 15:41
    关注

    可能是你的csv文件保存的编码格式是ansi,而不是utf8,另存为utf-8格式,然后用utf-8或者utf-8-sig进行解码即可,示例如下:

    b1 = b'\xF0\x9F\x91\x8F'
    b2 = b'\xF0\x9F\x94\xA5'
    print(b1)
    print(b2)
    print(b2.decode('utf-8-sig'))
    #输出#🔥
    
    评论

报告相同问题?

问题事件

  • 创建了问题 10月13日

悬赏问题

  • ¥15 gge梦幻西游的地图制作
  • ¥15 用VBA抓取淘宝的发票号码和下载发票pdf遇到的问题
  • ¥20 java excel导出有什么解决方案
  • ¥15 如何实现INCA与AVL台架的通讯
  • ¥15 关于#r语言#的问题:并不是原CSV文件中的数据
  • ¥30 flash_attention 编译问题
  • ¥15 图像采集的信号展开问题
  • ¥100 uniapp移动app使用nvue页面中recycle-list组件写聊天列表,反复出现闪退问题
  • ¥15 Flutter sdk 更新到3.24.0后运行flutter run --release 报错
  • ¥15 装win10系统自带的锐炫控制面板可以删除吗,里面有虚拟摄像头, 人脸识别会造成干扰