UnixコマンドラインからUnicode標準フォーマット間変換

UnixコマンドラインからUnicode標準フォーマット間変換

Unicodeでは、いくつかの文字の組み合わせに複数の表現があります。

たとえば、文字それは次のように表現できます。

  • コードポイントU + 00E4(c3 a4UTF-8エンコーディングの2バイト)である「ä」または
  • 「ä」は2つのコードポイントU + 0061 U + 0308(61 cc 88UTF-8の3バイト)です。

Unicode標準によると、両方の表現は同じですが、「正規化された形式」は異なります。UAX #15: Unicode 正規化形式

Unixツールボックスにはさまざまなテキスト変換ツールがあります。sedティー、私はPerlを考えた。コマンドラインでNF変換をすばやく簡単に行う方法は?

ベストアンサー1

あなたはそれを使用することができますuconvユーティリティは以下から来ます。集中治療室標準化音域()で達成されます-x

$ uconv -x any-nfd <<<ä | hd
00000000  61 cc 88 0a                                       |a...|
00000004
$ uconv -x any-nfc <<<ä | hd
00000000  c3 a4 0a                                          |...|
00000003

Debian、Ubuntu、その他の派生製品はパッケージuconvにあります。libicu-devFedora、Red Hat、その他の派生製品とBSDポートはパッケージicuに含まれています。

おすすめ記事