繁体   English   中英

我如何在C#中使用32位unicode字符?

[英]How do i use 32 bit unicode characters in C#?

也许我不需要32位字符串,但我需要代表32位字符

http://www.fileformat.info/info/unicode/char/1f4a9/index.htm现在我抓住了symbola字体,当我粘贴它时(在网址或任何文本区域中)可以看到该字符,所以我知道我有它的字体支持。

但是我如何在我的C#/ .NET应用程序中支持它?

- 编辑 - 我会添加一些东西。 当我在.NET winform应用程序中粘贴所述字符时,我没有正确地看到该字符。 当它粘贴到Firefox中时,我确实看到了它。 如何在winform应用程序中正确查看字符?

我不确定我理解你的问题:

  • .NET中的String是UTF-16编码的,你无能为力。 如果要获取字符串的UTF-32版本,则必须将其转换为具有UTF32Encoding类的字节数组。
  • Char在.NET acters因此16位长,并没有什么可以做这两种。 UTF-32编码字符只能由字节数组(包含4个项目)表示。 您可以使用UTF32Encoding类来实现此目的。
  • 每个UTF-32字符都具有等效的UTF-16表示,反之亦然。 因此,在这种情况下,我们只能谈论字符及其不同的表示(编码),UTF-16是.NET平台上的选择。

你没有说“支持”究竟是什么意思。 但是,除非你进行字符串操作,否则你需要做的就是处理不适合一个16位char 它们只会表示为代理对,但如果将string视为一个整体,则不需要知道它。

一个例外是某些字符串操作方法无法正常工作。 例如"\\U0001F4A9".Substring(1)将返回代理对的后半部分,这不是有效的字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM