char k = '\u103BD';

I get a compile time error.
I want to put the following char in my char k but it seems that the escape sequence will not accept more than 4 digits.
What should I do in this case? enter image description here

推荐答案

字符chartwo bytes值,这就是为什么它只能在[\u0000..\uFFFF]范围内. 如果您要查找值beyond \uFFFF,请注意,它应该表示为two characters struct ,例如string:

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

Console.Write(result);

Output:个个个

????

如果您想显式使用这两个字符,可以使用下面的解码:

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)
  );
}

Demo:

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

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

Output:个个个

????

最后,从.Net 6开始,您可以使用Rune struct 来处理这些字符对:

Rune rune = new Rune(0x103BD);

Console.Write(rune);

Output:个个个

????

Csharp相关问答推荐

Blazor:子编辑表单上的嵌套编辑表单验证

如何定义所有项目的解决方案版本?

错误NU 1301:无法加载源的服务索引

TDLib与机器人共享电话号码

无法解析数据库上下文的服务

try 在Blazor项目中生成html

StackExchange.Redis.RedisServerException:调用ITransaction.ExecuteAsync()时出现错误未知命令取消监视

由于POST中的应用程序/JWT,出现不支持的内容类型异常

如何注册类使用多级继承与接口

单行上的ReSharper数据标注

Blazor Web App WASM的两个独立项目令人困惑

DbContext-传递自定义配置选项

为什么方法的值在SELECT方法中不会更改?

发布.NET 8 Blazor WebAssembly独立应用程序以进行静态站点部署

为什么当我try 为玩家角色设置动画时,没有从文件夹中拉出正确的图像?

仅在ASP.NETCore应用程序中的附加单独端口上公开一组终结点

从MudAutoComplete打开对话框,列表仍然可见

使DefaultIfEmpty返回空

使用DI实例化带有动态参数的服务?

如何处理ASP.NET Core中包含两个构造函数的控制器?