サロゲートペアってなんなん
仕事でサロゲートペアって単語が出てきて何だっけ?となったので調べておく
サロゲートペアとは?
複数の文字で1文字を表現する - 「あ"」など
何が不便なの?
- String#length メソッドでカウント出来ない
- 例えば"𠮷田太郎"をカウントした場合5となる
- 32ビット(char型2つ)で表現されるため、見た目上の文字数よりも多くカウントされてしまう。
対策はあるの?
codePointCount
等のメソッドで文字列長をカウント可能
まとめ
- サロゲートペアは文字列をカウントする場合、見た目とカウント数が一致しないため、アプリ利用時に混乱を招く恐れがある
- 必要なライブラリは用意されているので、対策する事自体の難しさというより、サロゲートペアが存在する場合はその点を考慮して適切に対処すれば良い
と理解した