gotoshin

主に学んだ事の自分メモ用です。記事に書くまでも無いような事はhttps://scrapbox.io/study-diary/に書いてます。

サロゲートペアってなんなん

仕事でサロゲートペアって単語が出てきて何だっけ?となったので調べておく

サロゲートペアとは?

複数の文字で1文字を表現する - 「あ"」など

何が不便なの?

7.6. 文字列処理 — TERASOLUNA Server Framework for Java (5.x) Development Guideline 5.3.0.RELEASE documentation

  • String#length メソッドでカウント出来ない
    • 例えば"𠮷田太郎"をカウントした場合5となる
    • 32ビット(char型2つ)で表現されるため、見た目上の文字数よりも多くカウントされてしまう。

対策はあるの?

codePointCount等のメソッドで文字列長をカウント可能

まとめ

  • サロゲートペアは文字列をカウントする場合、見た目とカウント数が一致しないため、アプリ利用時に混乱を招く恐れがある
  • 必要なライブラリは用意されているので、対策する事自体の難しさというより、サロゲートペアが存在する場合はその点を考慮して適切に対処すれば良い

と理解した

サロゲートペアってなんでコワイの - Qiita