我對python比較陌生,但由於我的母語包含一些令人討厭的變音,所以我不得不跳入編碼在一開始就存在的噩夢。 我閱讀了joelonsoftware的編碼文本,並理解了代碼點與字母實際渲染(以及unicode和編碼之間的連接)之間的區別。 爲了讓我擺脫困境,我發現了3種處理變音符號的方法,但我無法做出決定,哪種適合什麼情況。 如果有人可以擺脫它的一些燈光?我希望能夠寫文本到文件,從它讀取(或sqlite3),併發出文本,所有包括可讀的變音符號... 非常感謝!哪種編碼方法最可靠?
# -*- coding: utf-8 -*-
import codecs
# using just u + string
with open("testutf8.txt", "w") as f:
f.write(u"Österreichs Kapitän")
with open("testutf8.txt", "r") as f:
print f.read()
# using encode/decode
s = u'Österreichs Kapitän'
sutf8 = s.encode('UTF-8')
with open('encode_utf-8.txt', 'w') as f2:
f2.write(sutf8)
with open('encode_utf-8.txt','r') as f2:
print f2.read().decode('UTF-8')
# using codec
with codecs.open("testcodec.txt", "w","utf-8") as f3:
f3.write(u"Österreichs Kapitän")
with codecs.open("testcodec.txt", "r","utf-8") as f3:
print f3.read()
編輯: 我測試了這個(文件的內容是 '甲必丹Österreichs'):
with codecs.open("testcodec.txt", "r","utf-8") as f3:
s= f3.read()
print s
s= s.replace(u"ä",u"ü")
print s
我必須在我的代碼在任何地方使用u'string」(Unicode)的?我發現,如果我只是使用空白字符串(不帶'u'),替換變音符號不起作用...
非常感謝,這給了我一些見解......張貼代碼不工作的意見? – Mike
您可以點擊評論欄旁邊的「幫助」按鈕來了解接受的語法(他們稱之爲mini-Markdown)。註釋中的代碼應該包含反引號(')。 – rkrzr
謝謝。我是否必須寫 'u「österreich」'以便能夠工作,例如:替換字母?請參閱我的編輯問題的整個例子... – Mike