關於utf-8,utf-7,unicode幾種編碼的區別
阿新 • • 發佈:2019-01-26
今天上csdn論壇時看到一個關於utf-8,utf-7......幾種編碼的區別,說法不一,雖然經常使用這幾種編碼,咋一想,還真有點模糊,於是百度一下,找了一些相關文章,總結如下(僅代表個人觀點):
unicode :
每個字元2個位元組
utf-8:
英文字元即能用8位表示的字元用1個位元組表示
能用8 到 11位 表示的字元用2個位元組表示
能用12 到 16 位表示的字元用2個位元組表示
utf-7:
遇英語字母、數字和常見符號直接用8位表示(不過我也沒搞清楚什麼時常見符號,如"&"符就會當成非常見字元。。。)
其他的符號串用+-來標記始終,如"a中中a"
在遇到中時會如下編碼
a的編碼 +的編碼 中的編碼 中的編碼 -的編碼 a的編碼
共6個位元組。。。
測試程式碼
a ="a中中a";byte[] bb = Encoding.UTF8.GetBytes(a);
Console.WriteLine("長度:"+ bb.Length);
foreach (byte bbb in bb)
{
Console.Write(bbb.ToString()+"");
}
bb
Console.WriteLine();
Console.WriteLine("長度:"+bb.Length);
foreach (byte bbb in bb)
{
Console.Write(bbb.ToString() +"");
}
bb = Encoding.ASCII.GetBytes(a);
Console.WriteLine();
foreach (byte bbb in bb)
{
Console.Write(bbb.ToString() +"");
}
Console.ReadLine();