日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python 返回字符串长度_Python在使用特殊字符时返回错误的字符串长度

發布時間:2025/4/5 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 返回字符串长度_Python在使用特殊字符时返回错误的字符串长度 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我有一個字符串’aúlt,我想根據字符位置獲得操作的長度等等.問題是第一個?被計算兩次,或者我猜?在位置0并且’在位置1.

在Python中是否有任何可能的方法讓像?被表示為1?

我正在使用UTF-8編碼來輸出它的實際代碼和網頁.

編輯:只是為什么我需要這樣做的背景.我正在研究一個將英語翻譯成Seneca(一種美洲原住民語言)的項目,并且顯示了很多.某些單詞的某些重寫規則需要知道字母位置(本身和周圍的字母)和其他特征,例如重音和其他變音符號.

解決方法:

UTF-8是一種unicode編碼,它對特殊字符使用多個字節.如果你不想要編碼字符串的長度,那么簡單解碼它并在unicode對象上使用len()(而不是str對象!).

這里有些例子:

>>> # creates a str literal (with utf-8 encoding, if this was

>>> # specified on the beginning of the file):

>>> len('??aúlt')

9

>>> # creates a unicode literal (you should generally use this

>>> # version if you are dealing with special characters):

>>> len(u'??aúlt')

6

>>> # the same str literal (written in an encoded notation):

>>> len('\xc3\xab\xcc\x81a\xc3\xbalt')

9

>>> # you can convert any str to an unicode object by decoding() it:

>>> len('\xc3\xab\xcc\x81a\xc3\xbalt'.decode('utf-8'))

6

當然,您也可以像訪問str對象一樣訪問unicode對象中的單個字符(它們都是從basestring繼承的,因此具有相同的方法):

>>> test = u'??aúlt'

>>> print test[0]

?

如果您開發本地化應用程序,通常最好在內部使用unicode對象,通過解碼您獲得的所有輸入.完成工作后,您可以將結果再次編碼為“UTF-8”.如果你堅持這個原則,你將永遠不會看到你的服務器崩潰,因為你可能會得到任何內部的UnicodeDecodeErrors;)

PS:請注意,str 3和unicode數據類型在Python 3中發生了顯著變化.在Python 3中,只有unicode字符串和普通字節字符串不能再混合使用.這應該有助于避免使用unicode處理時常見的陷阱……

問候,

克里斯托夫

標簽:python,character-encoding

來源: https://codeday.me/bug/20190926/1818400.html

總結

以上是生活随笔為你收集整理的python 返回字符串长度_Python在使用特殊字符时返回错误的字符串长度的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。