gpt4 book ai didi

c# - 通过\u 或\x 将一个非常大的十六进制分配给 char

转载 作者:行者123 更新时间:2023-12-05 01:49:57 25 4
gpt4 key购买 nike

char k = '\u103BD';

我得到一个编译时错误
我想将以下字符放入我的字符 k 但转义序列似乎不会接受超过 4 位。
在这种情况下我该怎么办? enter image description here

最佳答案

字符char两个字节 值,这就是为什么它只能在[\u0000..\uFFFF] 范围内。如果您正在寻找超出 \uFFFF 的值,请注意,它应该表示为两个字符 结构,例如字符串:

string result = "\U000103BD"; // note Capital U, 8 hex digits

Console.Write(result);

输出:

𐎽

如果你想明确地使用这两个字符,你可以使用下面的解码:

public static (char left, char right) Decode(int code) {
if (code < 0x10000)
throw new ArgumentOutOfRangeException(nameof(code));

return (
(char)(((code - 0x10000) >> 10) + 0xD800),
(char)(((code - 0x10000) & 0b1111_111_111) + 0xDC00)
);
}

演示:

(char left, char right) = Decode(0x103BD);

Console.Write(string.Concat(left, right));

输出:

𐎽

最后,从 .Net 6 开始,您可以使用 Rune使用这些字符对操作的结构:

Rune rune = new Rune(0x103BD);

Console.Write(rune);

输出:

𐎽

关于c# - 通过\u 或\x 将一个非常大的十六进制分配给 char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73595578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com