2011-10-05 125 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'™''。 –