[英]How can I convert a str representation of a unicode string to 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.