1 python unicode utf-16 python-3.x
我想将汉字转换为unicode格式,例如\'\\uXXXX\'\n但是当我使用str.encode(\'utf-16be\')时,它会显示:
\n\nb\'\\xOO\\xOO\'\n
Run Code Online (Sandbox Code Playgroud)\n\n因此,我编写了一些代码来执行我的请求,如下所示:
\n\ndata="index=\xe7\xb4\xa2\xe5\xbc\x95?"\nprint(data.encode(\'UTF-16LE\'))\n\ndef convert(s):\n returnCode=[]\n temp=\'\'\n for n in s.encode(\'utf-16be\'):\n if temp==\'\':\n if str.replace(hex(n),\'0x\',\'\')==\'0\':\n temp=\'00\'\n continue\n temp+=str.replace(hex(n),\'0x\',\'\')\n else:\n returnCode.append(temp+str.replace(hex(n),\'0x\',\'\'))\n temp=\'\'\n\n return returnCode\n\nprint(convert(data))\n
Run Code Online (Sandbox Code Playgroud)\n\n有人可以给我建议在 python 3.x 中进行此转换吗?
\n我不确定我是否理解你的意思。
\n\nUnicode 就像一种类型。在Python 3中,所有字符串都是unicode,所以当你写data = "index=\xe7\xb4\xa2\xe5\xbc\x95?"
数据已经是unicode了。如果您想获得仅用于显示的替代表示,您可以使用:
def display_unicode(data):\n return "".join(["\\\\u%s" % hex(ord(l))[2:].zfill(4) for l in data])\n\n>>> data = "index=\xe7\xb4\xa2\xe5\xbc\x95?"\n>>> print(display_unicode(data))\n\\u0069\\u006e\\u0064\\u0065\\u0078\\u003d\\u7d22\\u5f15\\u003f\n
Run Code Online (Sandbox Code Playgroud)\n\n请注意,该字符串现在具有真正的反斜杠和数字表示形式,而不是 unicode 字符。
\n\n但可能还有其他选择
\n\n>>> data.encode(\'ascii\', \'backslashreplace\')\nb\'index=\\\\u7d22\\\\u5f15?\'\n>>> data.encode(\'unicode_escape\')\nb\'index=\\\\u7d22\\\\u5f15?\'\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
11075 次 |
最近记录: |