gpt4 book ai didi

c# - C# 字符中的 Unicode SMP "character"

转载 作者:太空宇宙 更新时间:2023-11-03 16:13:48 25 4
gpt4 key购买 nike

<分区>

我正在尝试确定字符编码对我正在规划的软件系统的影响,但在进行测试时我发现了一些奇怪的事情。

据我所知,C# 在内部使用 UTF-16,据我所知,它包含使用两个 16 位字段的每个 Unicode 代码点。所以想做一些字符字面量,特意选择了𝛃和얤,因为前者来自SMP平面,后者来自BMP平面。结果是:

char ch1 = '얤'; // No problem
char ch2 = '𝛃'; // Compilation error "Too many characters in character literal"

这是怎么回事?

这个问题的必然结果是,如果我有字符串“얤𝛃얤”,它会在 MessageBox 中正确显示,但是当我使用 ToCharArray 将它转换为 char[] 时,我得到一个包含四个元素而不是三个元素的数组.此外,String.Length 被报告为四个而不是三个。

我是不是漏掉了什么?

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