1
我有以下代碼需進行重新檢測UTF-8
inf = codecs.open(inPath , encoding='utf-8')
outf = codecs.open(outPath, encoding='utf-8', mode='w')
old = u'’;'
new = u'’;'
for line in inf:
line = line.replace(old,new)
asc = line.encode('ascii', 'xmlcharrefreplace')
outf.write(asc)
# print asc
inf.close()
outf.close()
這(正確)將智能引號和重音符號等,成HTML格式,使用數字格式。它會轉換
<p>Dreams like: 「Someday I’ll travel to…; someday I’ll write a book;
到
<p>Dreams like: “Someday I’ll travel to…; someday I’ll write a book;
這是正確的。
但是代碼進一步下游,在中間看到…;
,丟棄了雙分號,然後抱怨說它沒有一個有效的實體。我無法更改此代碼。
正如您從我的代碼中可以看到的,我發現一個實體後面跟着一個分號。我不想替換源代碼中的所有分號。
如何檢測出符號> 127的UTF-8字符的分號,以便我可以用;
替換它?謝謝。
在我看來,這個問題是與「滴雙分號,然後抱怨說,它沒有得到有效的實體」的代碼;你也應該發佈該代碼;我不認爲從文本中移除雙分號就是所謂的預期行爲。 – pilsetnieks
我完全同意下游代碼已損壞。它不是亞馬遜的代碼就是蘋果的 - 而且他們不會打球。 – Ian
那麼你打電話的代碼是什麼?也許這個問題是相當「爲什麼蘋果的任何API從我的文字刪除雙分號?」不是正則表達式與以下分號 – pilsetnieks