我很难在python中对齐日文字符.
码:
print "{c1}{name:>14s}{c2}{nick_name:>14s}{planes:>16s}".format(
name=name, nick_name=nick_name, planes=planes,
c1=u.color['yellow'], c2=u.color['default']
)
Run Code Online (Sandbox Code Playgroud)
结果:
如果字符串只包含英文和数字,则.format()工作正常,如右图所示.
遇到日文字符时对齐出错,如左侧所示.
有趣的是,在调整时{name:>14s}
:
在这种情况下,它似乎对待1个日本特征= 3个空格.
{name:<14s}
{name:^14s}
{name:>14s}
都有上面提到的行为.
我使用的是OSX 10.10.2,终端字体是摩纳哥.
也许这与全宽/半角字符有关.
有没有像英文字符那样对齐日文字符?
谢谢.
编辑:
Ignacio Vazquez-Abrams的回答确实是正确的方法.
每个在Python中处理unicode的人都应该阅读他指出的幻灯片.
"\ u3000"是CJK中的全宽空间.看到这个页面.
查看.Format语法也会有所帮助.
我还想推荐这个SO答案,这有助于我理解unicode在Python中的工作原理.
但是,如果字符串包含半角和全角字符,则对齐仍然会出错.一个简单的解决方法是使用所有全角字符.