原文地址:点击打开链接

今天在园子首页看到一篇博文-简单聊下Unicode和UTF-8,从中知道了UTF-8是Unicode的一种实现方式:

在闪存中记录这个收获时,@飞鸟_Asuka在回复中提了一个很好的问题:“那么在选择编码方式的时候为什么unicode和utf8会是分别的两个选项呢?”

在C#中,System.Text.Encoding.Unicode与System.Text.Encoding.UTF8分别是2种编码方式。如果UTF-8是Unicode的一种实现方式,那C#中为什么将Encoding.Unicode作为与UTF8并列的一种编码方式呢?

后来在stackoverflow上找到了答案:

原来Windows默认的Unicode实现是UTF-16,所以C#中Encoding.Unicode就是UTF-16。

System.Text.Encoding.Unicode的注释也证明了这一点:


C#中Encoding.Unicode与Encoding.UTF8的区别-LMLPHP

//
// Summary:
//     Gets an encoding for the UTF-16 format using the little endian byte order.
//
// Returns:
//     An encoding for the UTF-16 format using the little endian byte order.public static Encoding Unicode { get; }
登录后复制

C#中Encoding.Unicode与Encoding.UTF8的区别-LMLPHP

C#中,Encoding.Unicode = UTF-16 。

以上就是C#中Encoding.Unicode与Encoding.UTF8的区别的内容,更多相关内容请关注Work网(www.php.cn)!

09-07 01:07