サロゲートペア文字とpowershell(1)
サロゲートペア文字が面倒くさい。
とすると D842 DFB7 5DDD と返してくれるD842 DFB7が𠮷で5DDDが川だ。
𠮷 土の吉、吉野家の吉の扱いが面倒だ、この文字、サロゲートペア文字と呼ばれ文字コードで表すと「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
で表示できる。これ調べるだけで半日以上かかった。
コメント
コメントを投稿