generated at
ページタイトルのUTF-8-MACをUTF-8にしてほしい


> /yuta25/バ (UTF-8)
> /yuta25/バ (UTF-8-MAC)
>
> 同じ文字でもMACのファイル名とかでは特殊なUTF-8になるらしい(知らなかった)。
> そしてScrapboxはその2つを区別してるっぽいので、上記のように同じ文字でも2つの別々のページになってしまう。
>
> 解決案
> saveする前に文字コードをUTF-8に一律で変換するなど
>

会社でオンプレ版のScrapboxを使っていて、Slackにオンプレ版Scrapboxのリンクが貼られたときにScrapboxのAPIを使って自動でプレビューが展開される仕組みを自作して使っているのですが、たまにうまく展開されないリンクがあって調査してたらこの問題を見つけました。解決されるとそれなりにうれしいなぁという感じです!yuta25


NFD/NFCというやつですねshokai
バは一見1文字のように見えて2文字の合字になっている
js
> 'バ'.split('') [ 'ハ', '゙'ÿ ] > 'バ'.split('').map(c => [c, c.charCodeAt().toString(16)]) [ [ 'ハ', '30cf' ], [ '゙'ÿ, '3099' ] ]
1文字の濁点がある
ごゔい゙ゔの゙も゙作゙れ゙る゙
実は2021/4ごろNFD対応をしました
エディタ上では、NFDのまま正常に表示・編集できるようになった
これまでは、ハと \u3099の間にカーソルが入る状態があった
ありました!他のページからコピペした文章を加工するのに、 Alt+Backspace でいちいち濁点のとこで止まって少し面倒くさいな〜と思ってたけど、たしかに最近経験してないことに気づきました!yuta25
今は1文字の合字として扱えている
1回のbackspaceキー押下で2文字分まとめて消える
1回のカーソルキー押下で2文字分カーソルが動く
全文検索でも、1文字のバ(NFC)と合字のバ(NFD)をどちらも丸めてヒットするようにしました
どちらもヒットしている様子


ページのURLはNFC化した方が良いのかもしれないですねshokai
ページ本文のテキストはNFD(かな+濁点)のままにしておきたい
NFDの文字が書けないと、NFDについてscrapbox上で書いたり議論したりできなくなってしまう
ユーザーがそういう文字を入力しようとしているのだから、勝手に変換しない
webブラウザもテキストエディタもNFDを表示・編集できる。scrapboxもNFDはNFDのまま扱えるようにするべき
+1yuta25
URLは統一しても良いのかもしれない
おそらく、そういう文字を入力しようとしているわけではなく、ファイル名からコピペした結果、意図せずタイトルにNFDが使われてしまうようなことが起きてるのかなあと思うので、確かにURLだけが統一されれば解決されて嬉しいですねyuta25

NFD/NFC、勉強になりますyuta25