gpt4 book ai didi

encoding - python 2.x中商标符号的长度

转载 作者:行者123 更新时间:2023-12-05 00:31:11 27 4
gpt4 key购买 nike

为什么是

>>> len('™')
>>> 3

在 python 2.x 中?

如何快速修复它以将其视为一个字符(如 Python 3.x?)

最佳答案

您的终端编码设置为 UTF8。您正在计算编码字符中的字节数:

>>> '™'
'\xe2\x84\xa2'
>>> len('™')
3

使用 unicode 计算字符数而不是字节数:
>>> u'™'
u'\u2122'
>>> len(u'™')
1

或从终端编码解码:
>>> import sys
>>> '™'.decode(sys.stdin.encoding)
u'\u2122'

在 Python 3 中,字符串是 unicode值,使用 Python 2 str类型重命名为 byte (您的输入与 Python 3 中的 b'™' 基本相同)。

您可能想阅读 Python 和 Unicode:
  • Python Unicode HOWTO
  • Pragmatic Unicode作者:内德·巴切尔德
  • The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)作者:乔尔·斯波尔斯基
  • 关于encoding - python 2.x中商标符号的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15299096/

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