"ŞÜÖ"长6个字符

Süm*_*çak 2 python utf-8 python-2.7

这是脚本:

#!/usr/bin/python
#coding: utf-8
str='?ÜÖ'
a = len(str)
print str
print a
Run Code Online (Sandbox Code Playgroud)

输出是:

?ÜÖ
6
Run Code Online (Sandbox Code Playgroud)

第一个问题是:如何让它向我展示它声称的6个字符..

第二个问题是......

是否可以确保python可以将这些字符视为每个字符的"1"字符,换句话说,对于上面的示例总共3个字符?

unu*_*tbu 8

在Python2中,a str是一个字节序列.该字符串由6个字节组成:

In [136]: text = '?ÜÖ'

In [137]: list(text)
Out[137]: ['\xc5', '\x9e', '\xc3', '\x9c', '\xc3', '\x96']
Run Code Online (Sandbox Code Playgroud)

如果您解码str以制作unicode:

In [138]: unitext = text.decode('utf-8')
Run Code Online (Sandbox Code Playgroud)

然后unitext由3个unicode字符组成:

In [139]: len(unitext)
Out[139]: 3

In [140]: list(unitext)
Out[140]: [u'\u015e', u'\xdc', u'\xd6']
Run Code Online (Sandbox Code Playgroud)

  • 或者首先使用`unicode`文字:'u'ŞÜÖ' (3认同)