Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python不正确的西里尔文格式_Python_Python 2.7 - Fatal编程技术网

python不正确的西里尔文格式

python不正确的西里尔文格式,python,python-2.7,Python,Python 2.7,输出: def inp(text): tmp = str() arr = ['.' for x in range(1, 40 - len(text))] tmp += text + ''.join(arr) print tmp s=['tester', 'om', 'sup', 'jope'] sr=['тестер', 'ом', 'суп', 'жопа'] for i in s: inp(i) for i in sr: inp(i) 为什

输出:

def inp(text):
    tmp = str()
    arr = ['.' for x in range(1, 40 - len(text))]
    tmp += text + ''.join(arr)
    print tmp

s=['tester', 'om', 'sup', 'jope']
sr=['тестер', 'ом', 'суп', 'жопа']
for i in s:
    inp(i)
for i in sr:
    inp(i)
为什么Python不能正确处理西里尔文?生产线的末端不是笔直的,也不是杂乱无章的。使用格式也一样。如何纠正这一点?谢谢阅读以下内容:

基本上,
text
参数中的
inp
函数是一个字符串。在Python2.7中,字符串默认为字节。当使用utf-8编码时,西里尔字符不会映射为1-1个字节,但需要多个字节(通常在utf-8中为2个),因此当您使用
len(text)
时,您不会得到字符数,而是字节数

为了获得字符数,您需要知道您的编码。假设它是utf-8,您可以将文本解码为该编码,它将正确打印:

tester.................................
om.....................................
sup....................................
jope...................................

тестер...........................
ом...................................
суп.................................
жопа...............................
重要的两条线是:

#!/usr/bin/python
# coding=utf-8
def inp(text):
    tmp = str()
    utext = text.decode('utf-8')
    l = len(utext)
    arr = ['.' for x in range(1, 40 - l)]
    tmp += text + ''.join(arr)
    print tmp

s=['tester', 'om', 'sup', 'jope']
sr=['тестер', 'ом', 'суп', 'жопа']
for i in s:
    inp(i)
for i in sr:
    inp(i)
首先对文本进行解码,结果是一个unicode字符串。之后,您可以使用内置的
len
获取字符长度,这是您想要的


希望这有帮助。

非常感谢。准确详细的答复。“再次谢谢你。”当然,很高兴能帮忙!
    utext = text.decode('utf-8')
    l = len(utext)