日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發布時間:2025/4/5 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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在使用特殊字符时返回错误的字符串长度的全部內容,希望文章能夠幫你解決所遇到的問題。

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