2012-03-22 88 views
1

我有一個python腳本,它從Web服務中檢索信息,然後在MySQL數據庫中查找數據。當我收到數據時,數據是unicode,但是我希望SQL語句使用實際字符(下面示例中的Băcioi)。正如你所看到的,當我嘗試編碼到UTF-8時,結果仍然不是我要找的。Python字符編碼

>>> x = u'B\u0103cioi' 
>>> x 
u'B\u0103cioi' 
>>> x.encode('utf-8') 
'B\xc4\x83cioi' 
>>> print x 
Băcioi ## << What I want! 

回答

4

您的編碼工作正常。 Python只是在命令行上向您顯示repr()的d版本,該命令行使用\x轉義符。你可以告訴它,因爲它也在字符串周圍顯示引號。

print不會對字符串做任何突變 - 如果它打印出你想要的字符,那就是字符串內容的實際內容。

+0

@MДΓΓБДLL - 你是什麼意思?他們已經以這種方式打印它,因爲這是字符串。沒有必要改變。 – Amber 2012-03-22 00:40:35

+1

是的,那是一個愚蠢的評論。我會在角落裏結束 – 2012-03-22 00:41:28