亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C#中字符串編碼處理

 更新時(shí)間:2013年03月08日 15:07:55   作者:  
C#中字符串編碼處理,需要的朋友可以參考一下

GB2312是簡(jiǎn)體中文系統(tǒng)的標(biāo)準(zhǔn)編碼 用“區(qū)” 跟“位”的概念表示 稱之為區(qū)位碼
區(qū)指代大的范圍 位相當(dāng)于偏移量。
每個(gè)漢字占兩個(gè)字節(jié)
高位字節(jié)”的范圍是0xB0-0xF7,“低位字節(jié)”的范圍是0xA1-0xFE。
它的規(guī)律好像是按拼音a到z的順序排列的
“啊”字是GB2312之中的第一個(gè)漢字,它的區(qū)位碼就是1601
為此我們現(xiàn)在用代碼的方式輸出一個(gè)漢字
c#下是little字節(jié)序 b0跑后面去了。

復(fù)制代碼 代碼如下:

 ushort u = 0xa1b0;
 byte[] chs =BitConverter.GetBytes(u);
 Console.Write(Encoding.GetEncoding("GB2312").GetString(chs));

屏幕上輸出的是漢字“啊”
但是注意并不代表 寫(xiě)個(gè)循環(huán)從0xbA1 到0xf7fe就可以輸出所有的漢字,這個(gè)很簡(jiǎn)單比如高位從1到9 低位從1到9 只有81種組合。
并不代表99-11就是結(jié)果 這么二的問(wèn)題 暈。實(shí)際上通過(guò)這種方式漢字的個(gè)數(shù)總共是6768個(gè),理解了區(qū)位碼的概念后你就知道怎樣去處理gb2312的漢字編碼了。
下面我們就用這種方式來(lái)輸出所有的漢字

復(fù)制代碼 代碼如下:

//gb2312
 //B0-F7,低字節(jié)從A1-FE
 //byte hi = 0xB0;
 //byte lo = 0xA1;
 for (byte i = 0xB0; i <= 0xF7; i++)
 {
     for (byte j = 0xA1; j <= 0xFE; j++)
     {
         //byte t = (byte)(j | (byte)0x01);
         Console.Write(Encoding.GetEncoding("GB2312").GetString(new byte[] { i, j }));
     }
 }

關(guān)于GB2312的解釋?zhuān)?A href="http://chabaoo.cn/article/34630.htm">http://chabaoo.cn/article/34630.htm

ASCII是美國(guó)信息交換標(biāo)準(zhǔn)碼 他是從0~127,一個(gè)字節(jié)8位最高是255 就是說(shuō)一個(gè)字節(jié)都用不完。
GB2312里也有字母 稱之為全角字符  ,gb2312里也包括ascii碼稱之為半角字符。
全角字符看上去怪怪的 感覺(jué)有點(diǎn)不一樣 就像這樣 全角: A半角:A  全角:a 半角:a
全角字符除了在文字系統(tǒng)里用到?jīng)]什么實(shí)際作用。
全角字符的第一個(gè)字節(jié)總是被置為163,而第二個(gè)字節(jié)則是相同半角字符碼加上128(不包括空格)。
如半角A為65,則全角A則是163(第一個(gè)字節(jié))、193(第二個(gè)字節(jié),128+65)。
知道這個(gè)規(guī)律 那么我們也可以遍歷處所有ascii對(duì)應(yīng)的全角字符:

復(fù)制代碼 代碼如下:

/**
  *實(shí)際上,全角字符的第一個(gè)字節(jié)總是被置為163,
  *而第二個(gè)字節(jié)則是相同半角字符碼加上128(不包括空格)。
  *如半角A為65,則全角A則是163(第一個(gè)字節(jié))、193(第二個(gè)字節(jié),128+65)。
  */
 for (byte k = 0x00; k < 0x7f; k++)
 {
     byte[] ch = new byte[2];
     ch[0] = 163;
     ch[1] = (byte)(128 + k);
     Console.Write(Encoding.GetEncoding("GB2312").GetString(ch));
 }

winXp下文本文件默認(rèn)的保存編碼是ansi ,注意 這個(gè)ansi 他的概念跟GB2312又有不同,除此之外還有unicode 、utf-8
他們之間的關(guān)系是:
不同的國(guó)家和地區(qū)制定了不同的標(biāo)準(zhǔn),由此產(chǎn)生了 GB2312, BIG5, JIS 等各自的編碼標(biāo)準(zhǔn)。
這些使用 2 個(gè)字節(jié)來(lái)代表一個(gè)字符的各種漢字延伸編碼方式,稱為 ANSI 編碼。
在簡(jiǎn)體中文系統(tǒng)下,ANSI 編碼代表 GB2312 編碼,在日文操作系統(tǒng)下,ANSI 編碼代表 JIS 編碼
C#進(jìn)行文本讀取時(shí)新同學(xué)最容易出現(xiàn)不理解為什么文本文件讀取時(shí)是亂碼

復(fù)制代碼 代碼如下:

 StreamReader sr = new StreamReader(Application.StartupPath + @"\config.txt");
 string line;
 while ((line = sr.ReadLine()) != null)
 {
     Console.WriteLine(line);
 }

因?yàn)樽x取的方式 也就是解碼的方式跟文本存儲(chǔ)時(shí)不一樣,所以初始化streamReader時(shí)最好指定編碼,Default即ANSI
復(fù)制代碼 代碼如下:

 StreamReader sr = new StreamReader(Application.StartupPath + @"\config.txt", System.Text.Encoding.Default);

相關(guān)文章

  • C#實(shí)現(xiàn)Array添加擴(kuò)展實(shí)例

    C#實(shí)現(xiàn)Array添加擴(kuò)展實(shí)例

    這篇文章主要介紹了C#實(shí)現(xiàn)Array添加擴(kuò)展,對(duì)C#初學(xué)者有不錯(cuò)的參考價(jià)值,需要的朋友可以參考下
    2014-08-08
  • C#/.Net開(kāi)發(fā)chatGPT、openAI的簡(jiǎn)單步驟

    C#/.Net開(kāi)發(fā)chatGPT、openAI的簡(jiǎn)單步驟

    OpenAI處于科技行業(yè)下一件大事件的最前沿,具有初創(chuàng)公司史詩(shī)般的標(biāo)志,下面這篇文章主要給大家介紹了關(guān)于C#/.Net開(kāi)發(fā)chatGPT和openAI的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • Unity UGUI的RectMask2D遮罩組件的介紹使用

    Unity UGUI的RectMask2D遮罩組件的介紹使用

    這篇文章主要為大家介紹了Unity UGUI的RectMask2D遮罩組件的介紹使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • C#入門(mén)學(xué)習(xí)之集合、比較和轉(zhuǎn)換

    C#入門(mén)學(xué)習(xí)之集合、比較和轉(zhuǎn)換

    本文詳細(xì)講解了C#中的集合、比較和轉(zhuǎn)換,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • C#線程池操作方法

    C#線程池操作方法

    這篇文章主要介紹了C#線程池操作方法,實(shí)例分析了C#中線程池的相關(guān)使用技巧,需要的朋友可以參考下
    2015-04-04
  • 基于C#對(duì)用戶密碼使用MD5加密與解密

    基于C#對(duì)用戶密碼使用MD5加密與解密

    C#中常涉及到對(duì)用戶密碼的加密于解密的算法,其中使用MD5加密是最常見(jiàn)的的實(shí)現(xiàn)方式。本文總結(jié)了通用的算法并結(jié)合了自己的一點(diǎn)小經(jīng)驗(yàn),分享給大家
    2015-12-12
  • C#異步編程的三種模式

    C#異步編程的三種模式

    本文詳細(xì)講解了C#異步編程的三種模式,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • C#使用timer定時(shí)在屏幕上輸出信息的方法

    C#使用timer定時(shí)在屏幕上輸出信息的方法

    這篇文章主要介紹了C#使用timer定時(shí)在屏幕上輸出信息的方法,涉及C#中timer定時(shí)器的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • Unity實(shí)現(xiàn)簡(jiǎn)單虛擬搖桿

    Unity實(shí)現(xiàn)簡(jiǎn)單虛擬搖桿

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)簡(jiǎn)單虛擬搖桿,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • 解析Silverlight調(diào)用WCF/Rest異常的解決方法

    解析Silverlight調(diào)用WCF/Rest異常的解決方法

    本篇文章對(duì)Silverlight調(diào)用WCF/Rest異常的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05

最新評(píng)論