それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

MacOSの濁点・半濁点を解決する。

macOS で作られたファイルの濁点半濁点問題。

ファイル名がUTF-8といえども、mac は濁点を合成文字として扱うので、Linuxで読むと面倒が起きる。

sudo convmv -f utf-8 -t utf-8 -r --notest --nfc ./*

ディレクトリ内部を再帰的に処理される。 find と組み合わせなくていいのが便利。

逆に言えば、内部全部が対象なので、うっかりしないように注意。

rsync 時にまとめてやる

rsync -a --iconv=utf-8-mac,utf-8 

rsync 時にまとめてやっておくと便利だと思われる。

ユニコード正規化

ユニコードで、macOSの日本語はNFDの亜種が使われている。

たとえば、macで作った<パ>は2文字で構成されている。

"パ".each_codepoint{|e| p e.to_s(16) }.map
"30cf"
"309a"

文字コードから文字のコードポイントを取得すると、2文字で構成されていることがわかる。

Windowsで作った「パ」は1文字で構成されている。

"パ".each_codepoint{|e| p e.to_s(16) }
"30d1"

この文字の違いは、ブラウザなど対応したソフトウェアで表示自体は同じだし、ユニコードとして特に問題がないので間違いではない。

けど、非対応なソフトウェアで表示すると、表示が乱れる。カーソル位置がおかしくなる

特に問題がでてくるのがWindowsのターミナルである。本当に不便なのです。 個人的な意見を言えば、日本語の取り扱いは、日本政府による規制と標準化が求められると思います。