blog.anqou.net
rss
author
tags

OCaml で uunf を使い Unicode 正規化する

一昨日の記事では Camomile を使って Unicode 正規化を行ったのですが、この方法を用いたソフトウェアで opam-nix を使って Docker イメージを作成するとイメージサイズが膨れ上がってしまうことが分かりました[1]

そこで別の選択肢である uunf を使い Unicode 正規化を行ってみます。uunf は Camomile と異なりチュートリアル利用例がドキュメントに記載されているので便利です。これを読むと Uunf_string.normalize_utf_8 という便利関数を用いると Unicode 正規化(NFKC)ができることが分かります:

let nfkc = Uunf_string.normalize_utf_8 `NFKC

Camomile の代わりにこちらを組み込んで Docker イメージを作成すると特に膨らむこともありませんでした。

注釈

  1. 根本的な原因は調査していません。uunf でも Unicode 正規化のためのテーブルはコード中に持っているようなのでこの分はデータが増えているはずですが、Camomile を使うと色々な機能を含んでいる分、データ量が増えるということなのでしょうか。