我有一个像下面这样的字符串
(““اسارنفار”或“ال”或“”或“羔”或“”或“羔”或“”或“呢”或“”或“呢”或“呢”或“呢”或“”或“?إ”或“”或“”或“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,但如果我使用 python 的 len
函数,它会给出 1514
这里有什么区别?
最佳答案
看起来,在 python (2.x) 中,您计算的是字节长度,而不是字符数。
使用str.decode
将字节串转换成unicode对象,然后统计字符数:
len(byte_string_object.decode('utf-8'))
您可能还需要去除环绕空间:
len(byte_string_object.decode('utf-8').strip())
>>> len('استنفار') # string (byte-string) literal
14
>>> len(u'استنفار') # unicode literal
7
>>> len('استنفار'.decode('utf-8')) # string -> unicode
7
关于java - 为什么 java String.length 给出与相同字符串的 python len() 不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28524215/