UTF8、GB2312相互转换

来源:互联网 发布:疯狂的程序员绝影真人 编辑:程序博客网 时间:2024/05/10 15:35
/// <summary>        /// GB2312转换成UTF8
///UTF8为变长编码        /// </summary>        /// <param name="text"></param>        /// <returns></returns>        public static string gb2312_utf8(string text)        {            //声明字符集               System.Text.Encoding utf8, gb2312;            //gb2312               gb2312 = System.Text.Encoding.GetEncoding("gb2312");            //utf8               utf8 = System.Text.Encoding.GetEncoding("utf-8");            byte[] gb;            gb = gb2312.GetBytes(text);            gb = System.Text.Encoding.Convert(gb2312, utf8, gb);            //返回转换后的字符               return utf8.GetString(gb);        }        /// <summary>        /// UTF8转换成GB2312
///GB2312每个汉字及符号以两个字节来表示
///GB2312编码适用于汉字处理、汉字通信等系统之间的信息交换,通行于中国大陆;新加坡等地也采用此编码。中国大陆几乎所有的中文系统和国际化的软件都支持GB 2312。
/// </summary> /// <param name="text"></param> /// <returns></returns> public static string utf8_gb2312(string text) { //声明字符集 System.Text.Encoding utf8, gb2312; //utf8 utf8 = System.Text.Encoding.GetEncoding("utf-8"); //gb2312 gb2312 = System.Text.Encoding.GetEncoding("gb2312"); byte[] utf; utf = utf8.GetBytes(text); utf = System.Text.Encoding.Convert(utf8, gb2312, utf); //返回转换后的字符 return gb2312.GetString(utf); }
//把字符串转化成相应编码的字节数组
//可以求此编码下字符串的字节数
string s;
byte[] b = System.Text.Encoding.UTF8.GetBytes(s);
0 0