1. 程式人生 > >字母與ASCII碼之間的轉換

字母與ASCII碼之間的轉換

1、先解釋下兩個名詞,主要從百度百科中查詢得到:
ASCII
(American Standard Code for Information Interchange,美國標準資訊交換程式碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言。它是現今最通用的單位元組編碼系統,並等同於國際標準ISO/IEC 646。
http://baike.baidu.com/view/15482.htm?fromtitle=ascii%E7%A0%81&fromid=99077&type=syn
Unicode
(統一碼、萬國碼、單一碼)是電腦科學領域裡的一項業界標準,包括字符集、編碼方案等。Unicode 是為了解決傳統的字元編碼方案的侷限而產生的,它為每種語言中的每個字元設定了統一併且唯一的二進位制編碼,以滿足跨語言、跨平臺進行文字轉換、處理的要求。

http://baike.baidu.com/view/40801.htm

2、將字母轉換為ASCII碼,可以利用如下程式碼

private void btnToASCII_Click( object sender , EventArgs e )
{
    if( txtChar1.Text != string.Empty )
    {
        if( Encoding.GetEncoding( "unicode" ).GetBytes( new char[] { txtChar1.Text[ 0 ] } )[ 1 ] == 0 )
        {
            txtASCII1.Text
= Encoding.GetEncoding( "unicode" ).GetBytes( txtChar1.Text )[0].ToString(); } else { txtASCII1.Text = string.Empty; MessageBox.Show( "請輸入正確的字母" , "錯誤" ); } } }

關於Encoding,可以檢視下面這段拆開寫的程式碼解釋

//使用Encoding的GetEncoding方法得到Encoding的物件
Encoding e= Encoding.GetEncoding( “unicode” );

//呼叫Encoding物件的GetBytes方法,此方法接受一個字串或字元陣列作為引數,最後返回位元組陣列物件
byte[] b=e .GetBytes( “Hehe” );

//位元組陣列的第0個索引來得到字串中第一個字母的ASCII碼
string str= b[ 0 ].ToString();

MessageBox.Show(str);

注意:
如果上述程式碼中Encoding.GetEncoding( “unicode” ).GetBytes( txtChar1.Text )[0].ToString()沒有制定位元組數字第幾個字元,即寫成Encoding.GetEncoding( “unicode” ).GetBytes( txtChar1.Text ).ToString(),則最後的輸出結果為“System.Byte[]”

3、將ASCII碼轉換為數字,可以利用如下程式碼

private void btnToChar_Click( object sender , EventArgs e )
{
    if( txtASCII2.Text != string.Empty )
    {
        int p;
        if( int.TryParse(txtASCII2.Text,out p) )
        {
            txtChar2.Text = ((char)p).ToString();
        }
        else
        {
            txtChar2.Text = string.Empty;
            MessageBox.Show( "請輸入正確的數字" , "錯誤" );
        }
    }
}

這裡相當於用了強制轉換,於是我們也可以在字母轉為ASCII碼中也可以用強制轉換試試:

private void btnToASCII2_Click( object sender , EventArgs e )
{
    if( txtChar1.Text != string.Empty )
    {
        try
        {
            txtASCII1.Text = ( (int)txtChar1.Text[ 0 ] ).ToString();
        }
        catch
        {
            MessageBox.Show( "請輸入正確的字母" , "錯誤" );
        }
    }
}

發現輸出結果也是一樣的,所以這種方法也是可以的。

如果你有什麼建議和指導,歡迎留言!
交流學習,才能更快成長!