gpt4 book ai didi

Unicode 字符串上的 Python、len 和切片

转载 作者:太空狗 更新时间:2023-10-29 20:11:42 24 4
gpt4 key购买 nike

我正在处理这样一种情况,我需要让一个字符串适合屏幕上分配的间隙,因为我使用的是 unicode len() 和 slices[] 显然是按字节工作的,我最终把 unicode 字符串剪得太短了,因为 只在屏幕中占据一个空间,但 len() 或 slices[] 占 2 个空间。

我已经正确设置了编码 header ,并且我愿意使用 slice 或 len() 之外的其他东西来处理这个问题,但我真的需要知道字符串将占用多少个空格以及如何将其切割成可用的。

$cat test.py
# -*- coding: utf-8 -*-
a = "2 €uros"
b = "2 Euros"
print len(b)
print len(a)
print a[3:]
print b[3:]

$python test.py
7
9
��uros
uros

最佳答案

您不是在那里创建 Unicode 字符串;您正在使用 UTF-8 编码创建字节字符串(如您所见,它是可变长度的)。您需要使用 u"..."(或 u'...')形式的常量。如果这样做,您将获得预期的结果:

% cat test.py
# -*- coding: utf-8 -*-
a = u"2 €uros"
b = u"2 Euros"
print len(b)
print len(a)
print a[3:]
print b[3:]
% python test.py
7
7
uros
uros

关于Unicode 字符串上的 Python、len 和切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5695714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com