この記事の環境はMacOS Montereyです。
HomebrewにあるRangerというファイラーのソフトを使っていた時、
濁点が正しく表示されない、修正できないという問題がありました。
調べた所、MacではUTF-8にはNFD(Normalization Form Canonical Decompression)
というのが一部で使われていて、それを使用するプログラム(この場合だとpython3)を留意無く使用すると
このように濁点、半濁点が抜けたり、別で(コンヒ゜ュータみいたいに)表示されたりするそうです。
(そのすぐ上の「できる韓国語…」がちゃんと表示されているのは、どうも作成された環境によって濁点の処理がされる時とされない時があるらしい)
さらに、rangerのGithubを調べた所、この問題は既知の問題だったらしく、
すでに修正パッチがありました。
ただし、この問題は大変悲しいことにマージされなかったようです。
描いてある感じ、「python2.7とかでも動くのかい」「他でもエラーが出ないのかい」
「それらを確認しないとマージできないよ」という感じで、多分それらを検証できなかったようです。
おそらくこのレビュアーは日本の環境を用意できなかったため、自分では検証できなかったのでしょう。
そりゃそうですよね。日本でも「A」とウムラウトつきの「Ä」に違いがどうあるかはよくわかりません。
まあ直したほうがいいかもしれないが、この修正で他の言語全てで問題が起きるかわからない。
じゃあもうマージしないでおくか、と思ったか放置されたかされたようです。
さて困った。方法は2つ。
①このブランチをプルしてこれをmake?する
②手で修正してこれをmake?する
①はできれば避けたかった。この修正は2年前のものだし、それから先にやってある新しい修正を潰すことになる。
②ですが、果たしてmakeできるかどうかもわからない。そもそもHomebrewがどうやって動いているのかわかっていませんでした。
困ってhomebrewの説明を見ていたら、このような記述が。
https://brew.sh/index_ja
Homebrewは、ただ/usr/localのCellarというところに置いてあるだけだから、
それを改変すればのかな?ということがわかりました。
RangerはPython3で書いているということがわかりました。
Python3なら普通コンパイルしませんね。
この修正の変更を見ても、pythonで書いてあることがわかりました。
https://github.com/ranger/ranger/pull/2030/files
では手作業で直してみるか…
/usr/local/Cellar/ranger を開くと、たしかにそのままファイル群があります。
これで直るのだろうか…
おっかなびっくりrangerを立ち上げてみます。
直ってる〜!!!
すべてのHomebrewが手で直せるかどうかはわかりませんが、
意外と手で直せるって事を知りました。