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

原文地址:点击打开链接

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

Unicode只是给这世界上每个字符规定了一个统一的二进制编号,并没有规定程序该如何去存储和解析。

可以说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 handles so-called "Unicode" strings as UTF-16 strings, while most UNIXes default to UTF-8 these days. 

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

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

//
// 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 = UTF-16 。

时间: 2025-01-31 05:42:19

C#中Encoding.Unicode与Encoding.UTF8的区别的相关文章

简单谈谈php中的unicode和utf8编码

 重新认识unicode和utf8编码 直到今天,准确的说是刚才,我才知道UTF-8编码和Unicode编码是不一样的,是有区别的囧 他们之间是有一定的联系的,看看他们的区别: UTF-8的长度是不一定的,有可能是1.2.3字节 Unicode长度一定,2个字节(USC-2) UTF-8可以和Unicode互相转换 unicode和utf8的关系 Unicode(16进制) UTF-8(二进制) 0000 - 007F 0xxxxxxx 0080 - 07FF 110xxxxx 10xxxxxx

简单谈谈php中的unicode和utf8编码_php技巧

重新认识unicode和utf8编码 直到今天,准确的说是刚才,我才知道UTF-8编码和Unicode编码是不一样的,是有区别的囧 他们之间是有一定的联系的,看看他们的区别: UTF-8的长度是不一定的,有可能是1.2.3字节 Unicode长度一定,2个字节(USC-2) UTF-8可以和Unicode互相转换 unicode和utf8的关系 Unicode(16进制) UTF-8(二进制) 0000 - 007F 0xxxxxxx 0080 - 07FF 110xxxxx 10xxxxxx

lua中编码转换 utf16转utf8,unicode转utf8

问题描述 lua中编码转换 utf16转utf8,unicode转utf8 lua中怎么从utf16转到utf8 ? 从网上找到个js的实现方法,但是不知道参数是什么, function utf16ToUtf8(s){ if(!s){ return; } var i, code, ret = [], len = s.length; for(i = 0; i < len; i++){ code = s.charCodeAt(i); if(code > 0x0 && code &l

《Python Cookbook(第2版)中文版》——1.22 在标准输出中打印Unicode字符

1.22 在标准输出中打印Unicode字符 任务 你想将Unicode字符串打印到标准输出中(比如为了调试),但是这些字符串并不符合默认的编码. 解决方案 通过Python标准库中的codecs模块,将sys.stdout流用转换器包装起来.比如,如果你知道输出会被打印到一个终端,而且该终端以ISO-8859-1的编码显式字符,可以这样编写代码: import codecs, sys sys.stdout = codecs.lookup('iso8859-1')[-1](sys.stdout)

PHP中的UNICODE 编码与解码

本篇文章是对PHP中的UNICODE 编码与解码进行了详细的分析介绍,需要的朋友参考下   方法一: 复制代码 代码如下: <?php function unicode_encode($name) { $name = iconv('UTF-8', 'UCS-2', $name); $len = strlen($name); $str = ''; for ($i = 0; $i < $len - 1; $i = $i + 2) { $c = $name[$i]; $c2 = $name[$i +

c 文件读写-在C语言中读取闻见为UTF-8的汉字,英文混合的文件,又甚么函数可以不出现乱码

问题描述 在C语言中读取闻见为UTF-8的汉字,英文混合的文件,又甚么函数可以不出现乱码 注意:是函数! 我要提取其中的汉字信息,如何是分配的内存不会有乱码 memset fgets fread fseek这几个函数除外的函数 解决方案 搜一下, utf8转unicode 解决方案二: 这应该和编译的文本有关,我编写java时也遇到这情况 解决方案三: dos窗口的编码好像是默认的编码,所以如果现实utf-8字符好像会出问题,可以读取出来再写到文件里,看看是否是要读的数据,如果是,说明是编码问题

php怎么把unicode编码转为utf-8编码

在前端开发中,为了让中文在不同的环境下都能很好的显示,一般是将中文转化为unicode格式,即u4f60,比如:"你好啊"的unicode编码为"u4f60u597du554a". JS里将中文转为unicode编码很简单. JS代码: function convert2Unicode(str) {     return str.replace(/[u0080-uffff]/g,     function($0) {         var tmp = $0.cha

JS中的UniCode转码问题

<script type="text/javascript"> var GB2312UnicodeConverter = { ToUnicode: function (str) { return escape(str).toLocaleLowerCase().replace(/%u/gi, '\\u'); } , ToGB2312: function (str) { return unescape(str.replace(/\\u/gi, '%u')); } }; var

关于在UNICODE CString转UTF-8

问题描述 关于在UNICODE CString转UTF-8 如何Unicode下,将CString转成UTF-8.例如:CString xx=""您好""CSting str=URLEnCode(xx);转换后的结果:str的内容就是%e6%82 解决方案 CString str(_T(""我是中国人"")); CT2A szUtf8(strCP_UTF8); string s_utf8(szUtf8); CString st