1. 程式人生 > >ASCII,Utf8,Unicode編碼下的中英文字元大小

ASCII,Utf8,Unicode編碼下的中英文字元大小

    一,測試Demo

namespace 不同編碼下的中英文字元大小
{
    class Program
    {
        static void Main(string[] args)
        {
            ShowCode();
        }

        private static void ShowCode() {

            string[] strArray = { "b","abc","乙","甲乙丙丁"};
            byte[] buffer;
            string mode, back;

            foreach (string  str in strArray)
            {
                for (int i=0; i<=2; i++)
                {
                    if (i==0) //ASCII編碼
                    {
                        buffer = Encoding.ASCII.GetBytes(str);
                        back = Encoding.ASCII.GetString(buffer, 0, buffer.Length);
                        mode = "ASCII";
                    }
                    else if(i==1)  //UTF8編碼
                    {
                        buffer = Encoding.UTF8.GetBytes(str);
                        back = Encoding.UTF8.GetString(buffer, 0, buffer.Length);
                        mode = "UTF8";
                    }
                    else           //Unicode編碼
                    {
                        buffer = Encoding.Unicode.GetBytes(str);
                        back = Encoding.Unicode.GetString(buffer, 0, buffer.Length);
                        mode = "Unicode";
                    }

                    Console.WriteLine("編碼方式:{0} ;字串:{1} ;長度:{2}", mode, str, buffer.Length);

                    Console.WriteLine("編碼後的位元組陣列:");

                    for (int j = 0; j <=buffer.Length-1; j++)
                    {
                        Console.WriteLine("  "+buffer[j]+"  "); 
                    }

                    Console.WriteLine("\n編碼後字元為:{0} \n",back);

                    
                }

                Console.WriteLine("----------------------------------------------------------");
            }
        
        }
    }
}

  二,結果如下


   b只有在Unicode下面編碼為2位元組,讀到的byte[1]被編碼為了0;ASCII碼和UTF-8編碼相同。


Unicode編碼每個位元組後面都補了個0;

對於中文:


ASCII碼編碼後連外星人都讀不出來了;

UTF8編碼出了3個位元組;

Unicode出來了兩個位元組;


相關推薦

ASCII,Utf8,Unicode編碼中英文字元大小

    一,測試Demo namespace 不同編碼下的中英文字元大小 { class Program { static void Main(string[] args) { ShowCod

字元編碼(ASCIIUnicode和UTF-8) 和 大小

本文包括2部分內容:“ASCII,Unicode和UTF-8” 和 “Big Endian和Little Endian”。 第1部分 ASCII,Unicode和UTF-8 介紹 1. ASCII碼 我們知道,在計算機內部,所有的資訊最終都表示為一個二進位制的字串。每一個二進位制位(bit)有0和1

【轉載】如何用VB6在中文系統Unicode編碼的日文字元轉成Shift-JIS編碼

這個題目有點變態,不過有時確實會有這種需求,起碼我就碰到過。同樣變態的需求還有“如何用VB6在日文系統下把Unicode編碼的中文字元轉成GB2312編碼”。這種需求有個比較時髦的名字,叫做“國際對應”。本文將提供幾種解決方法。一:繁瑣的方法如果之前看過我貼的那篇VB6中EBCDIC碼和Unicode碼之間的

utf8 unicode 編碼互轉

true 編碼 turn cti ram brush amp switch bsp static function utf8_to_unicode($c) { switch(strlen($c)) { case 1:

不依賴任何系統API,用c語言實現gbk/utf8/unicode編碼轉換

轉載地址:https://blog.csdn.net/bladeandmaster88/article/details/54837338 漢字'我' Unicode編碼是0x6211       01100010 00010001 UTF8編碼是&

Unicode編碼CString、char*、BSTR相互轉換,char*、wchar_t*相互轉換

1、Unicode編碼下CString轉為char* 方法一:使用API:WideCharToMultiByte進行轉換<span style="font-size:18px;">#i

所謂編碼--泛談ASCIIUnicodeUTF8、UTF16、UCS-2等編碼格式

dia 做了 enter log 一起 數量 字符編碼 bmp src   最近在看nodejs的源碼,看到stream的實現裏面滿地都是encoding,不由想起以前看過的一篇文章——在前面的隨筆裏面有提到過——阮一峰老師的《字符編碼筆記:ASCII,Unicode和UT

【轉載】字元編碼ASCIIUnicode和UTF-8的區別

1. ASCII碼 我們知道,在計算機內部,所有的資訊最終都表示為一個二進位制的字串。每一個二進位制位(bit)有0和1兩種狀態,因此八個二進位制位就可以組合出256種狀態,這被稱為一個位元組(byte)。也就是說,一個位元組一共可以用來表示256種不同的狀態,每一個狀態對應一個符

三種常見字元編碼ASCIIUnicode和UTF-8

什麼是字元編碼? 計算機只能處理數字,如果要處理文字,就必須先把文字轉換為數字才能處理。最早的計算機在設計時採用8個位元(bit)作為一個位元組(byte),所以,一個位元組能表示的最大的整數就是255(二進位制11111111=十進位制255),如果要表示更大的整數,就必須用更多的位元組。比如

字元編碼ASCIIUnicode 和 UTF-8

一、ASCII 碼 我們知道,計算機內部,所有資訊最終都是一個二進位制值。每一個二進位制位(bit)有0和1兩種狀態,因此八個二進位制位就可以組合出256種狀態,這被稱為一個位元組(byte)。也就是說,一個位元組一共可以用來表示256種不同的狀態,每一個狀態對應一個符號,就是256個符號,從0

關於字元編碼asciiunicode與utf-8

轉自:https://foofish.net/unicode_utf-8.html   阮一峰老師對普及計算機基礎技術功不可沒,但畢竟老師不是神,因此也避免不了對某些概念有一些錯誤的理解,《字元編碼筆記:ASCII,Unicode 和 UTF-8 》 是阮老師10年前寫的一篇關於字元編

字元編碼ASCIIUnicode和UTF-8

一、什麼是字元編碼?        字元編碼(英語:Character encoding)也稱字集碼,是把字符集中的字元編碼為指定集合中某一物件(例如:位元模式、自然數序列、8位組或者電脈衝),以便文字在計算機中儲存和通過通訊

常見三種字元編碼的區別:ASCIIUnicode、UTF-8

什麼是字元編碼?        計算機只能處理數字,如果要處理文字,就必須先把文字轉換為數字才能處理。最早的計算機在設計時採用8個位元(bit)作為一個位元組(byte),所以,一個位元組能表示的最大的整數就是255(二進位制11111111=十進位制255),如果要表示更

計算機字元編碼ASCIIUnicode, utf-8 ,GBK

前言: 最近專案中遇到了utf-8 和 gbk 轉換的問題,突然對計算機中字串的編碼問題產生了興趣,拜讀了幾篇文章,做了一下簡單的總結 一 ASCII 我們知道,計算機的內部只認 二進位制 0,1的狀態,通常8個二進位制代表一個位元組,這是計算機最小的儲存單

ASCIIUnicode,UTF-8,UTF-16,ANSI字元編碼比較

標準ASCII,其最高位(b7)用作奇偶校驗位。 擴充套件ASCII 字元是從128到255(0x80-0xff)的字元。 擴充套件ASCII不再是國際標準。 ASCII太短,肯定不能作為編碼實現方案,但是可以用其作為一部分。 Unicode也是編碼方式不是實現方式,win

字元編碼ASCIIUnicode、UTF-8

  網際網路時代,知乎大V通過段子抖機靈,公眾號大V通過雞湯獲得關注,微博大V通過新聞搶眼球,我們作為普通看客則刷的不亦樂乎。但是這些文章都有一個不引人注意的共同點,那就是它們都是由字元組成的(好吧,果然說的是廢話☺)。字元君,也就是今天要講的主角。   這一

字元編碼筆記:ASCIIUnicode 和 UTF-8

今天中午,我突然想搞清楚 Unicode 和 UTF-8 之間的關係,就開始查資料。 這個問題比我想象的複雜,午飯後一直看到晚上9點,才算初步搞清楚。 下面就是我的筆記,主要用來整理自己的思路。我儘量寫得通俗易懂,希望能對其他朋友有用。畢竟,字元編碼是計算機技術的基石,想要熟練使用計算機,就必須懂得一點字元編

Python3_字元編碼Encoding:ASCIIUnicode,UTF-8

Python 3的字串str型別用Unicode,直接支援多語言。 當str和bytes互相轉換時,需要指定編碼。最常用的編碼是UTF-8。Python當然也支援其他編碼方式,比如把Unicode編碼成GB2312: >>> '中文'.encode('gb2312') b'

【Python】utf8,unicode,ascii編碼的相互轉換

(linux系統為例) 中文字元:腳 對應編碼如下: utf8編碼: unicode編碼:(引號前有 u) ascii編碼: 【1】unicode與ascii互轉 涉及函式:ord()與 ch

字元編碼的發展(ASCIIUnicode、utf-8)

  最近一直在看廖雪峰老師的python網上教程,python內容簡單易理解,就沒整理,但是字串編碼作為一直困擾自己的問題,看了幾遍文章,最終還是將其整理如下,本篇部落格總結自廖雪峰老師的網上教程:http://www.liaoxuefeng.com/   首先我們要明確三者出現的時間依次是:ASCII,Un