私の命名法が正しいかどうか確信が持てないので、訂正してください:)
パーリ語辞書を表すテキスト ファイルを受け取りました。改行\n
(0x0a) 文字で区切られた単語のリストです。おそらく、特殊文字のいくつかは UTF-8 を使用してエンコードされていると思われますが、私はそうは思いません。
このテキスト ファイルを任意のエディター (vim、メモ帳、TextEdit など) に読み込むと、次のように非常に乱雑なテキストが表示されます。
mhiti
実際のバイトを詳しく見てみると、次のことが明らかになります ( を使用hexdump -C
) 。
0a 0a 1e 6d 68 69 74 69 0a 0a ...mhiti..
これは私にはUnicodeコードポイントU+1E6D
(「ṭ」またはLATIN SMALL LETTER T WITH DOT BELOW)のようです。その特定の文字には UTF-8 エンコーディングがありe1 b9 ad
ます。
私の質問: この特定のファイルを実際の UTF-8 エンコーディングに変換するのに役立つツールはありますか? 私は試みiconv
ましたが成功しませんでした。Python スクリプトを簡単に調べましたが、これを行うためのより簡単な方法があると思います。これはこの問題の便利なリンクのようですが、これを実行できるツールはありませんか? 何か不足していますか?
編集:物事をもう少し面白くするために、実際の UTF-8 でエンコードされた文字もあちこちに散らばっているようです。たとえば、「ākiñcaññāyatana」という単語は、次のバイト シーケンスを持ちます。
01 01 6b 69 c3 b1 63 61 c3 b1 c3 b1 01 01 79 61 74 61 6e 61
ā k i ñ c a ñ ñ ā y a t a n a
ここで、"ā" は Unicode コード ポイント U-0101 によってエンコードされ、"ñ" は Unicode コード ポイント U-00F1 を持つ UTF-8 シーケンス \xc3b1 によってエンコードされます。
編集:これは、それがどうあるべきかよくわからないものです:
01 1e 37 01 01 76 61 6b 61
? ā v a k a
推測することしかできませんが、それも意味がありません。Unicode コード ポイント U+011e は "Ğ" (UTF-8 \xc49e) ですが、これはパーリ語の文字ではありません。次に「7」が続きますが、これは一言では意味がありません。次に、Unicode コード ポイント U+1E37 は、有効なパーリ文字である "ḷ" (UTF-8 \xe1b8b7) です。しかし、それでは最初のバイト \x01 だけが残ります。推測すると、これは「Jīvaka」という名前だと思いますが、バイトとは一致しません。 LATER:著者によると、これは「Āḷāvaka」です — したがって、上記の文字エンコーディングのヒューリスティックを仮定すると、ここでも \x00 が欠落しています。追加して戻す
01 00 1e 37 01 01 76 61 6b 61
Ā ḷ ā v a k a
UTF-16 でエンコードされた Unicode ファイルから \x00 バイトを削除する「圧縮」はありますか?