将str转换为unicode s

2024-06-16 10:03:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要在python2.7中将str转换为文本

a = u'"\u0274\u1d1c\u0274\u1d04\u1d00 \u1d00\u028f\u1d1c\u1d05\u1d07s \u1d00 \u1d1c\u0274 \u0274\u026a\xf1\u1d0f \u1d0f \u1d1c\u0274\u1d00 \u0274\u026a\xf1\u1d00 \u1d04\u1d0f\u0274 \u1d1c\u0274\u1d00 \u1d1b\u1d00\u0280\u1d07\u1d00 \u1d07\u0274 \u029f\u1d00 \u01eb\u1d1c\u1d07 s\u026a\u1d07\u0274\u1d1b\u1d07 \u01eb\u1d1c\u1d07 \u1d18\u1d1c\u1d07\u1d05\u1d07 \u1d1b\u1d07\u0274\u1d07\u0280 \u1d07x\u026a\u1d1b\u1d0f"'

我尝试使用a.decode('utf8'),但事实是我不知道str是什么类型的代码a

我需要的输出是:

"ɴᴜɴᴄᴀ ᴀʏᴜᴅᴇs ᴀ ᴜɴ ɴɪñᴏ ᴏ ᴜɴᴀ ɴɪñᴀ ᴄᴏɴ ᴜɴᴀ ᴛᴀʀᴇᴀ ᴇɴ ʟᴀ ǫᴜᴇ sɪᴇɴᴛᴇ ǫᴜᴇ ᴘᴜᴇᴅᴇ ᴛᴇɴᴇʀ ᴇxɪᴛᴏ"

错误:

>>> print(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "F:\WinPython-64bit-2.7.13.1Zero\python-2.7.13.amd64\lib\encodings\cp437.py", line 12, in encode
    return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode characters in position 1-5: character maps to <undefined>

Tags: inencodestrxf1u1d04u026au01ebu1d1b
1条回答
网友
1楼 · 发布于 2024-06-16 10:03:06

由于您使用的是Python2,因此必须将字符串内容(已经是文本)编码到终端编码中。你知道吗

因此,如果您在windows上,print(a.encode("cp-850")),如果您在Linux、Mac OS或其他操作系统上:print(a.encode("utf-8"))

在Python3上,编码应该自动完成。 另外,理解Python中编码为\uNNNN的字符对应于Unicode码点,而不是特定的字符编码,如“utf-8”、“latin1”或“utf-16”,这一点也很重要。在python3中,像这样的大多数可读字符编码即使使用字符串内部表示也会显示出来,这在Python交互会话中是默认显示的(否则使用内置的repr调用来查看它)。通过使用内置的“str”或对print的调用,可以看到呈现的字符串,所有\uXXXX\UXXXXXXXX\xNN\N{unicode character name}标记都呈现为实际字符。(在Python2中,您需要手动将此表示编码为设备中使用的字符编码)

换句话说,如果您使用的是Python3,这非常简单:


In [15]: a = u'"\u0274\u1d1c\u0274\u1d04\u1d00 \u1d00\u028f\u1d1c\u1d05\u1d07s \u1d00 \u1d1c\u0274 \u0274\u026a\xf1\u1d0f \u1d0f \u1d1c\u0274\u1d00 \u0274\u026a\xf1\u1d00 \u1d04\u1d0f\u0274 \u1d1c\u0274\u1d00 \u1d1b\u1d00\u0280\u1d07\u1d00 \u1d07\u0274 \u029f\u1d00 \u01eb\u1d1c\u1d07 s\u026a\u1d07\u0274\u1d1b\u1d07 \u01eb\u1d1c\u1d07 \u1d18\u1d1c\u1d07\u1d05\u1d07 \u1d1b\u1d07\u0274\u1d07\u0280 \u1d07x\u026a\u1d1b\u1d0f"' 
    ...:                                                                                                                                                            

In [16]: a                                                                                                                                                          
Out[16]: '"ɴᴜɴᴄᴀ ᴀʏᴜᴅᴇs ᴀ ᴜɴ ɴɪñᴏ ᴏ ᴜɴᴀ ɴɪñᴀ ᴄᴏɴ ᴜɴᴀ ᴛᴀʀᴇᴀ ᴇɴ ʟᴀ ǫᴜᴇ sɪᴇɴᴛᴇ ǫᴜᴇ ᴘᴜᴇᴅᴇ ᴛᴇɴᴇʀ ᴇxɪᴛᴏ"'

Or:
In [17]: print(a)                                                                                                                                                   
"ɴᴜɴᴄᴀ ᴀʏᴜᴅᴇs ᴀ ᴜɴ ɴɪñᴏ ᴏ ᴜɴᴀ ɴɪñᴀ ᴄᴏɴ ᴜɴᴀ ᴛᴀʀᴇᴀ ᴇɴ ʟᴀ ǫᴜᴇ sɪᴇɴᴛᴇ ǫᴜᴇ ᴘᴜᴇᴅᴇ ᴛᴇɴᴇʀ ᴇxɪᴛᴏ"

相关问题 更多 >