[英]utf-8 convert to utf-16
我想將中文字符轉換為unicode格式,比如'\\ uXXXX'但是當我使用str.encode('utf-16be')時,它會顯示:
b'\xOO\xOO'
所以,我寫了一些代碼來執行我的請求,如下所示:
data="index=索引?"
print(data.encode('UTF-16LE'))
def convert(s):
returnCode=[]
temp=''
for n in s.encode('utf-16be'):
if temp=='':
if str.replace(hex(n),'0x','')=='0':
temp='00'
continue
temp+=str.replace(hex(n),'0x','')
else:
returnCode.append(temp+str.replace(hex(n),'0x',''))
temp=''
return returnCode
print(convert(data))
有人可以給我建議在python 3.x中進行這種轉換嗎?
我不確定我是否理解你。
Unicode就像一種類型。 在python 3中,所有字符串都是unicode,所以當你寫data = "index=索引?"
然后數據已經是unicode。 如果您想獲得僅用於顯示的替代表示,您可以使用:
def display_unicode(data):
return "".join(["\\u%s" % hex(ord(l))[2:].zfill(4) for l in data])
>>> data = "index=索引?"
>>> print(display_unicode(data))
\u0069\u006e\u0064\u0065\u0078\u003d\u7d22\u5f15\u003f
請注意,字符串現在具有真正的反斜杠和數字表示,而不是unicode字符。
但可能還有其他選擇
>>> data.encode('ascii', 'backslashreplace')
b'index=\\u7d22\\u5f15?'
>>> data.encode('unicode_escape')
b'index=\\u7d22\\u5f15?'
首先嘗試解碼,例如: s.decode('utf-8').encode('utf-16be')
?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.