Man*_*ani 37 .net c# character-encoding
只是想知道为什么我们char在C#(.NET)中有2字节大小的类型,而不像其他编程语言中的1字节?
Jan*_*oom 33
char是C#中的unicode,因此可能的字符数超过255.所以你需要两个字节.
例如,扩展ASCII具有255个字符集,因此可以存储在一个字节中.这也是System.Encoding命名空间的全部目的,因为不同的系统可以有不同的字符集和字符大小.因此C#可以处理一个/四个/等.char字节,但Unicode UTF-16是默认值.
Joe*_*oey 25
我猜"其他编程语言" 你的意思是C. C实际上有两种不同的char类型:char和wchar_t.char可能是一个字节长,wchar_t不一定.
在C#(和.NET)中,所有字符串都以UTF-16编码为Unicode.这就是为什么char在.NET中代表单个UTF-16 代码单元的原因,它可能是代码点或代理对的一半(实际上不是一个字符).
实际上,C#(或更准确地说是 CLR)的 char 大小与大多数其他托管语言一致。托管语言(如 Java)往往较新,并且从头开始内置了诸如 unicode 支持之类的项目。支持 unicode 字符串的自然扩展是拥有 unicode 字符。
像 C/C++ 这样的老语言一开始只支持 ASCII,后来才添加了 unicode 支持。
| 归档时间: |
|
| 查看次数: |
40346 次 |
| 最近记录: |