私は完全なパイソン初心者なので、ご容赦ください。Python で html のページをスキャンし、Microsoft Word エンティティのインスタンスを UTF-8 互換のものに置き換えたいと考えています。
私の質問は、Pythonでそれをどのように行うのですか(これをGoogleで検索しましたが、これまで明確な答えが見つかりませんでした)?私はPythonの水につま先を浸したいので、このような単純なものから始めるのが良いと思います. 私がする必要があるようです:
- MS Word から貼り付けたテキストを変数にロードする
- コンテンツに対して何らかの置換機能を実行します
- 出力する
PHP では、次のようにします。
$test = $_POST['pasted_from_Word']; //for example “Going Mobile”
function defangWord($string)
{
$search = array(
(chr(0xe2) . chr(0x80) . chr(0x98)),
(chr(0xe2) . chr(0x80) . chr(0x99)),
(chr(0xe2) . chr(0x80) . chr(0x9c)),
(chr(0xe2) . chr(0x80) . chr(0x9d)),
(chr(0xe2) . chr(0x80) . chr(0x93)),
(chr(0xe2) . chr(0x80) . chr(0x94)),
(chr(0x2d))
);
$replace = array(
"‘",
"’",
"“",
"”",
"–",
"—",
"–"
);
return str_replace($search, $replace, $string);
}
echo defangWord($test);
Pythonでどのようにしますか?
編集: うーん、わかりました、UTF-8 とエンティティに関する私の混乱は今のところ無視してください。入力には、MS Word から貼り付けられたテキストが含まれています。カーリー クォートのようなものは、奇妙な記号として表示されます。試して修正するために使用したさまざまな PHP 関数では、必要な結果が得られませんでした。これらの奇妙なシンボルを 16 進エディタで表示すると、上記で使用したシンボル (0xe2、0x80 など) に対応していることがわかりました。そのため、私は単純に奇妙な文字を HTML エンティティに置き換えました。上記のビットが既に UTF-8 である場合、MS Word から何が貼り付けられ、奇妙なシンボルが表示されるのでしょうか?
EDIT2: そこで、Python について少し学び始めたところ、エンコーディングがよくわからないことがわかりました。私が解決しようとしていた問題は、端から端まで一貫性のあるエンコーディングを使用することで簡単に処理できます。入力フォームが UTF-8 の場合、入力を格納するデータベースは UTF-8 であり、それを出力するページは UTF-8 です... Word からの貼り付けは正常に機能します。特別な機能は必要ありません。さて、少しPythonを学ぶことについて...