【问题标题】:Decoding and printing escaped characters解码和打印转义字符
【发布时间】:2014-05-11 06:03:10
【问题描述】:

我对字符 - 进行了正则表达式替换,将其替换为 »。这一切都很好,但是,当输出替换结果时,它会被转义。如何在输出时正确打印字符?

#!/usr/bin/python
# coding: utf-8
# -*- coding: utf-8 -*- 
import os, sys
import re

searchText = "SKY ROCKETS IN FLIGHT - AFTERNOON DELIGHT"
result = re.sub("(\\-)", "»", searchText)
resultdecoded = result.decode('string_escape') 
print("output:", resultdecoded)

('输出:', '天空火箭飞行 \xc2\xbb 下午的喜悦')

【问题讨论】:

  • 去掉print的括号。这显然是 Python 2,而不是 Python 3。
  • @MarkRansom 哇,这很容易(是的,它是 python 2)。如果您将其作为答案,我将很乐意接受。谢谢你:)

标签: python regex encoding utf-8 decoding


【解决方案1】:

在 Python 3 中,print 是一个函数,这将生成正确的输出。

在 Python 2 中,print 是一个语句,您不是在打印两个不同的对象 - 您是在打印一个元组,它是通过将项目放在括号中并在它们之间用逗号 (,) 创建的。元组的字符串表示试图显示该字符串在程序中的外观。

解决方法是去掉括号。

【讨论】:

  • 另一个问题,# coding: utf-8# -*- coding: utf-8 -*- 之间有什么区别——使用一个或两个比另一个更正确?
  • @ctfd 他们都会告诉 Python 你的源文件是 utf-8。带有额外字符的那个也适用于 Emacs,请参阅 stackoverflow.com/questions/4872007/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多