編碼格式的轉換

(整理:網站建設網站製作公司-VeiSun.Com)c#實現GB2312和UTF8字符編碼方式的轉換

public string UTF8ToGB2312(string str)
        {
            try
            {   
                Encoding utf8 = Encoding.GetEncoding(65001);
                Encoding gb2312 = Encoding.GetEncoding("gb2312");//Encoding.Default ,936
                byte[] temp = utf8.GetBytes(str);
                byte[] temp1 = Encoding.Convert(utf8, gb2312, temp);
                string result = gb2312.GetString(temp1);
                return result;
            }
            catch  (Exception ex)//(UnsupportedEncodingException ex)
            {
                MessageBox.Show(ex.ToString());
                return null;
            }
        }
        public string GB2312ToUTF8(string str)
        {
            try
            {
                Encoding uft8 = Encoding.GetEncoding(65001);
                Encoding gb2312 = Encoding.GetEncoding("gb2312");
                byte[] temp = gb2312.GetBytes(str);
                MessageBox.Show("gb2312的編碼的字節個數:" + temp.Length);
                for (int i = 0; i < temp.Length; i++)
                {
                    MessageBox.Show(Convert.ToUInt16(temp[i]).ToString());
                }   
                byte[] temp1 = Encoding.Convert(gb2312, uft8, temp);
                MessageBox.Show("uft8的編碼的字節個數:" + temp1.Length);
                for (int i = 0; i < temp1.Length; i++)
                {
                    MessageBox.Show(Convert.ToUInt16(temp1[i]).ToString());
                }              
                string result = uft8.GetString(temp1);
                return result;
            }
            catch  (Exception ex)//(UnsupportedEncodingException ex)
            {
                MessageBox.Show(ex.ToString());
                return null;
            }
        }

代碼說明:

 Encoding utf8 = Encoding.GetEncoding(65001);//使用code page

 Encoding gb2312 = Encoding.GetEncoding("gb2312");//通過bodyname

獲取字符編碼字節序列:byte[] temp=utf8.GetBytes(str);

編碼方式轉換:byte[] temp1=Encoding.Convert(utf8, gb2312, temp);

獲取編碼的字符串:string str1=gb2312.GetString(temp1);

這樣即完成了字符編碼的轉換。

Encoding.Default在 簡體中文os中一般是gb2312格式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章