次のコードがあります
inf = codecs.open(inPath , encoding='utf-8')
outf = codecs.open(outPath, encoding='utf-8', mode='w')
old = u'’;'
new = u'’&#59;'
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;
これはすべて正しいです。
ただし、さらに下流のコード…;
では、真ん中に があり、二重のセミコロンが削除され、有効なエンティティがないことを訴えます。このコードを変更することはできません。
私のコードからわかるように、エンティティの後にセミコロンが続く 1 つのケースを見つけました。ソース内のすべてのセミコロンを置き換えたくありません。
コード ポイントが 127 を超える UTF-8 文字に続くセミコロンを検出するにはどうすればよい;
ですか? ありがとう。