2011-10-05 85 views
2

我正在为设计师准备一些数据。我正在用Windows机器上的python将数据从SQL Server中提取出来(不确定操作系统是否重要)。我如何制作'官方商标™'='官方商标'?此外,关于unicode或相关主题的任何进一步信息/阅读将帮助我变得更加独立。谢谢你的帮助!从字符串Python中去除商标符号

编辑:

也许我应该包括一些代码。我现在在运行时遇到这个错误:'UnicodeDecodeError:'ascii'编解码器无法解码位置2中的字节0x99:序号不在范围(128)中。这里是我的代码:

row.note = 'TM™ Data\n' 
t = row.note 
t = t.rstrip(os.linesep).lstrip(os.linesep) 
t = t.replace(u"\u2122",'') 
+2

搅拌机等都有答案,所以这里的一些阅读Unicode是如何在Python中表示:http://docs.python.org/howto /unicode.html#the-unicode-type – birryree

+0

@birryree:感谢您的链接。 – Blender

回答

8

商标符号是Unicode字符U+2122,或在Python符号u"\u2122"

只是做了搜索和替换:

'string'.replace(u"\u2122", '') 
+0

“(必须小心使用Unicode,因为打印时必须对其进行解码)”部分是误导性的,当Python认为您的终端只支持ascii时,您只需自己编码*。我认为出于某种原因在Windows上它确实如此。 –

+0

当您打印Unicode时,Python会自动使用'sys.stdout.encoding'给出的编码对其进行编码。如果您的终端设置正确,那么应该是UTF-8或任何编码对您的语言有意义。否则,编码默认为ascii,打印非ASCII字符将失败。 –

2
>>> 'Official Trademark™'.strip('™') 
'Official Trademark' 
>>> 
+0

你不能在Python源代码中使用非ascii字符:http://codepad.org/ymgtruH9 – Blender

+2

你可以,你只需要编写'# - * - coding:utf-8 - * - '第一行在您的源文件中:http://codepad.org/BYIPuDox – infrared

+1

在Python 3中,声明不再是必需的。在Python 2中,你应该使用unicode字符串'u'™''。 –

相关问题