サロゲートペア文字とpowershell(1)

サロゲートペア文字が面倒くさい。
𠮷 土の吉、吉野家の吉の扱いが面倒だ、この文字、サロゲートペア文字と呼ばれ文字コードで表すと「D842 DFB7」になる、通常の川とかが「 5DDD」と4桁の16進数なのに対して、8桁となる。

powershellでは
        $myname="𠮷川"
           $tt= [int[]][char[]]$myname | %{ $_.ToString("X2")}
           Write-Host "この文字列のコードは" $myname $tt

とすると D842 DFB7 5DDD と返してくれるD842 DFB7が𠮷で5DDDが川だ。
で、
        $myname_countA = [System.Globalization.StringInfo]::new($myname).LengthInTextElements
        $myname_count = $myname.Length

とすると $myname_countA が 3 で$myname_count が 2文字になるので、一致s無ければサロゲートペア文字が含まれていると推測できる。

さらに、powershell内部でサロゲートペア文字をコードから入力するためには
         $TTT = -join [char[]](0xd842, 0xdfb7)
         Write-Host $TTT

で表示できる。これ調べるだけで半日以上かかった。

コメント

このブログの人気の投稿

Windows10デフォルトゲートウェアに0.0.0.0が追加される

iOS VLC でSMB共有できなかった点について

無線LANルータの選択肢が、NEC Aterm 静的ルーティングできない問題