簡體   English   中英

將unicode的字符串表示形式轉換為unicode

[英]convert string representation of unicode to unicode

這段python 2.7代碼首先正確打印“ 1”,然后拋出“ ValueError:int()的無效文字,基數為10:“”。

num = '\x001\x00'
print num
print int(num)

我猜問題是type(num) == <type 'str'> ,所以我實際上沒有Unicode字符串“ 1”,而是一個ASCII字符串,其中包含字符串“ 1”的Unicode表示形式。 我說對了嗎?

無論如何,如何將num轉換為int()可以識別的格式?

\\x00字節是這里的問題,而不是Unicode與字符串值。 您可以刪除這些:

int(num.strip('\x00'))

int()僅接受包含數字的字符串,該字符串可能帶有小數點,符號( +- )和周圍的空格。 NULL字節不是空格,即使您的終端在打印時忽略它們也是如此。

該代碼似乎可以正確打印1 ,因為終端會忽略在1之前和之后要打印的二進制零。

要將字符串正確轉換為數字,首先需要知道字符串的格式。 例如,如果格式是數字的文本表示形式被二進制零包圍,那么您可以使用Martijn的答案中的代碼將其轉換。 否則, struct模塊是進行此類轉換的有用的通用工具。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM