Дон Балон Asked:2022-07-13 04:45:39 +0000 UTC2022-07-13 04:45:39 +0000 UTC 2022-07-13 04:45:39 +0000 UTC 在 C# 中使用 Unicode 字符的问题 772 我在输出代码长度大于四个字符的 Unicode 字符时遇到问题。 事实是,当您尝试输出label1Unicode 字符时,例如,像这样:U+1F4BE,由于某种原因,程序不会捕获最后一个字符。在本例中,这是符号E。 (我不会附上整个代码,因为它很大,但问题仅在于字符的输出) 我只是不明白问题出在哪里,因为U+2709所有类型的代码都可以正常工作: 在代码的开头还写了以下内容: c# unicode 1 个回答 Voted Best Answer iiKuzmychov 2022-07-13T05:02:55Z2022-07-13T05:02:55Z UTF16在 C# 中,字符串具有Windows默认编码。 您的 unicode 表示为UTF32,而不是UTF16。UTF16您的 unicode 将由两个表示: label1.Text = "\xD83D\xDCBE"; 为了不每次 google 到 unicode 翻译 from UTF32to UTF16,就用char.ConvertFromUtf32(unicode). 对于您的示例,它将如下所示: label1.Text = char.ConvertFromUtf32(0x1F4BE);
UTF16在 C# 中,字符串具有Windows默认编码。您的 unicode 表示为
UTF32,而不是UTF16。UTF16您的 unicode 将由两个表示:为了不每次 google 到 unicode 翻译 from
UTF32toUTF16,就用char.ConvertFromUtf32(unicode).对于您的示例,它将如下所示: