C#中的字符串及其编码转换
关于字符编码以及如何在程序中处理unicode,本想写篇文章总结学习一下,但发现有前人已经论述的很完善了,不再重复,可以参考:http://www.regexlab.com/zh/encoding.htm。
在C++中,字符有char和wchar之分,相应的,字符串有string和wstring两种。
C#中,string是一个unicode字符串,相应的,每个char都是16位。
源文件中出现的字符串常量,都会被自动转换为unicode编码(utf16),利用Text.Encoding,可以实现不同编码间的转换。
using System;
using System.Text;
namespace test
{
class Program
{
static void Main(string[] args)
{
string u16s = "忘记了啊abc"; //默认的字符编码是unicode,也就是utf16
//4种编码
Encoding utf8 = Encoding.UTF8;
Encoding utf16 = Encoding.Unicode;
Encoding gb = Encoding.GetEncoding("gbk");
Encoding b5 = Encoding.GetEncoding("big5");
//转换得到4种编码的字节流
byte[] u16bytes = u
}
}
}
浙公网安备 33010602011771号