この件、どうも git の設定っぽい、という話だった。
precomposeunicode=true
Mac上では濁点や半濁点を含む日本語(例として「ガ」)は、元の文字+濁点/半濁点(「カ」+「゛」)のように分割して扱われています。(UnicodeのNFD) ... なお、Macのgit 1.8.5以降はデフォルト設定が上記となっているようなので、事象が発生するとすればそれより古いバージョンを使っている or 明示的に変更している状態だと思われます。
なるほどな〜、ということで設定してみることにした。
❯ cat ~/.gitconfig # This is Git's per-user configuration file. ... [core] excludesfile = /Users/donbulinux/.gitignore_global editor = vi precomposeunicode = true ...
あれっもうあるやんけ?! じゃあ git のバージョンか、と思って確認してみた。
❯ git -v git version 2.46.1
うーん……? やっぱりコピペ元のコンテンツ由来なんじゃないかなあ、という感じがする。
最近のクリップボード、高性能過ぎてリッチテキストの書式 (URL とかスタイル) なんかも保持するので、それで持ち越せてる疑惑もあるしよくわからんのだった。
とりあえずこういうのもあるよ、という事で。
追記:濁点などの扱い
結局 macOS 自体が濁点や半濁点の扱いが独特、ということらしい?
追記2:finder からファイル名をコピーするのがダメ?
precompose = true で運用しているんだけど相変わらず濁点のファイルが壊れる〜、と思っていたのですが、ふと「そういや毎回、楽だからという理由で Finfer で対象ファイルを選択して enter 押して Ctrl+A で拡張子まで全選択して ref の指定先としてコピペしてたな」と思って、ターミナルで ls して出したファイル名を選択→ ref の指定先としてコピペしてみたらちゃんと動いた……。
git diff でも書き換えたら差分として認識された……これか、これか! true にしても「trueじゃないやんけ!」となっていた原因。