Fan*_*oos 4 python java string
我有一个像下面的字符串
("???????" OR "?????????" OR "?????????" OR "?????????" OR "????????" OR "????????" OR "???????" OR "????????" OR "??????????" OR "??????????" OR "?????????" OR "??????????" OR "??????????" OR "??????????" OR "??????????" OR "??????????" OR "??????????" OR "?????????" OR "??????????" OR "???????" OR "???????" OR "?????????" OR "?????????" OR "?????????" OR "?????????" OR "?????????" OR "?????????") (("???? ??????" OR "???? ??????" OR "?????? ??????" OR "?????? ??????") OR ("??????????????" OR "??????????????" OR "??????????????" OR "??????????????" OR "??????????????" OR "??????????????")("?????? ????????" OR "?????? ????????" OR "?????? ????????" OR "??????? ????????" OR "??????? ????????" OR "?????? ????????" OR "??????? ????????" OR "??????? ????????" OR "??????? ????????" OR "??????? ????????" OR "??????? ????????" OR "??????? ????????" OR "??????? ????????" OR "??????? ????????" OR "??????? ????????") OR )
如果我使用java字符串变量并计算它给我的字符数923,但如果我使用lenpython函数它给了我1514
这有什么区别?
看起来,在python(2.x)中,你计算字节长度,而不是字符数.
使用字节字符串转换为unicode对象str.decode,然后计算字符数:
len(byte_string_object.decode('utf-8'))
Run Code Online (Sandbox Code Playgroud)
您可能还需要去除环绕空间:
len(byte_string_object.decode('utf-8').strip())
Run Code Online (Sandbox Code Playgroud)
>>> len('???????') # string (byte-string) literal
14
>>> len(u'???????') # unicode literal
7
>>> len('???????'.decode('utf-8')) # string -> unicode
7
Run Code Online (Sandbox Code Playgroud)