This Stack Overflow question处理16位Unicode字符。我想要一个支持32位字符的类似解决方案。见this link for a listing of the various Unicode charts。例如,32位的字符范围是Musical Symbols。
上面链接的问题中的答案不起作用,因为它将System.Int32值转换为System.Char,这是一个16位类型。
编辑:让我澄清一点,我并不特别关心显示32位Unicode字符,我只想将字符存储在字符串变量中。
编辑#2:我编写了一个PowerShell代码段,它使用标记答案中的信息及其注释。我本想把它放在另一条评论中,但评论不能多行。
$inputValue = '1D11E'
$hexValue = [int]"0x$inputValue" - 0x10000
$highSurrogate = [int]($hexValue / 0x400) + 0xD800
$lowSurrogate = $hexValue % 0x400 + 0xDC00
$stringValue = [char]$highSurrogate + [char]$lowSurrogate
Dour High Arch仍然值得称赞,因为我帮助我最终理解代理对。
答案 0 :(得分:4)
答案 1 :(得分:2)
假设PowerShell使用UTF-16,32位代码点表示为surrogates。例如,U + 10000表示为:
0xD100 0xDC00
即两个16位字符;十六进制D100和DC00。
祝你好运找到代理字符的字体。