我有一个给定int的例程,该例程返回等效的UNICODE字符。不过,对于某些值,它不会重新调整字符,但会重新调整其(我认为)十六进制值。
例如:
17664 --->'䔀'// 正确!
但是
56384 --->'\ udc40'// 错误!!!
那是为什么?
答案 0 :(得分:2)
代码0xdc40的字符是Low Surrogate。
这意味着它是32位字符的一半(表示为16位低位替代字符加上16位高位替代UTF16字符),因此与实际字符不符。
>这就是为什么输出显示'\udc40'
而不是单个字符的原因。