サロゲートペア文字と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 で表示できる。これ調べるだけで半日以上かかった。