您 已经拥有了价值 。Python只是通过为您提供ASCII友好的表示形式来尝试简化 调试
。在解释器中回显值会为您提供调用
repr()结果的结果。
换句话说,您正在将值的 表示
与值本身混淆。该表示旨在安全地复制和粘贴,而不必担心其他系统如何处理非ASCII代码点。因此,使用了Python字符串文字语法,所有不可打印的和非ASCII字符都由
xhh和
uhhhh转义序列代替。将这些字符串粘贴回Python字符串或交互式Python会话中,将再现完全相同的值。
如此
ü已被替换
xfc,因为这是带有DIAERESIS代码点的U +
00FC拉丁文小写字母U的 Unipre代码
点。
如果您的终端配置正确,则可以使用
>>> u'Fortuna Düsseldorf'u'Fortuna Dxfcsseldorf'>>> print u'Fortuna Düsseldorf'Fortuna Düsseldorf
如果为终端配置了UTF-8,则还可以在显式编码后将UTF-8字节直接写入终端:
>>> u'Fortuna Düsseldorf'.enpre('utf8')'Fortuna Dxc3xbcsseldorf'>>> print u'Fortuna Düsseldorf'.enpre('utf8')Fortuna Düsseldorf
另一种方法是升级到Python
3;有
repr()只使用针对没有可打印的字符的码点的转义序列(控制码,保留码点,替代物,等等;如果码点是不是一个空间,但在下降
C*或
Z*一般类别,它被转义)。新
ascii()功能
repr()仍然为您提供Python
2的行为。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)