daimaxiaozhai

导航

 

最近要从公司一个老的数据库里拿数据,但是数据是ISO-8859-1编码,网上学习了一些方法,这里记录一下防止下次又要找

     private void button6_Click(object sender, EventArgs e)
        {
            //C# UTF-8 转换 ISO-8859-1 编码

            string sResult = Txt_iso.Text.ToString();
        //txt_iso这个是我的winform控件名称,你可以换成你的数据源
            //string tt = sResult.get

            sResult = ConvertISO88591ToEncoding(sResult, Encoding.Default);

            MessageBox.Show(sResult);
            //处理RSS返回的数据
            //.
        }

        private static string ConvertISO88591ToEncoding(string srcString, Encoding dstEncode)
        {
            String sResult;
            Encoding ISO88591Encoding = Encoding.GetEncoding("ISO-8859-1");
            Encoding GB2312Encoding = Encoding.GetEncoding("GB2312"); //这个地方很特殊,必须利用GB2312编码
            byte[] srcBytes = ISO88591Encoding.GetBytes(srcString);
            //将原本存储ISO-8859-1的字节数组当成GB2312转换成目标编码(关键步骤)
            byte[] dstBytes = Encoding.Convert(GB2312Encoding, dstEncode, srcBytes);
            char[] dstChars = new char[dstEncode.GetCharCount(dstBytes, 0, dstBytes.Length)];
            dstEncode.GetChars(dstBytes, 0, dstBytes.Length, dstChars, 0);//利用char数组存储字符
            sResult = new string(dstChars);
            return sResult;
        }

这样就能将这个编码格式的数据转换成正常的中文啦!

posted on 2022-04-24 09:05  学代码的小翟  阅读(330)  评论(0)    收藏  举报