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("http://www.my400800.cn 400電話受理 ");

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

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

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM