使用MySql时会遇到中文乱码的问题

编码转换的代码:

/*   在使用MySql时会遇到中文乱码的问题就此写下面两个函数   
        *   在写入数据库和从数据库读出时将编码改变   
        *   author:alice   
        *   date       :2006/1/25   
      
*/
   
      
//写入数据库时进行转换   
      public   string   GB2312_ISO8859(string   write)   
      
{   
        
//声明字符集   
        System.Text.Encoding   iso8859,   gb2312;   
        
//iso8859   
        iso8859   =   System.Text.Encoding.GetEncoding("iso8859-1");   
        
//国标2312   
        gb2312   =   System.Text.Encoding.GetEncoding("gb2312");   
        
byte[]   gb;   
        gb   
=   gb2312.GetBytes(write);   
        
//返回转换后的字符   
        return   iso8859.GetString(gb);   
      }
   
        
      
//读出时进行转换   
      public   string   ISO8859_GB2312(string   read)   
      
{   
        
//声明字符集   
        System.Text.Encoding   iso8859,gb2312;   
        
//iso8859   
        iso8859         =   System.Text.Encoding.GetEncoding("iso8859-1");   
        
//国标2312   
        gb2312   =   System.Text.Encoding.GetEncoding("gb2312");   
        
byte[]   iso;   
        iso   
=   iso8859.GetBytes(read);   
        
//返回转换后的字符   
        return   gb2312.GetString(iso);   
      }


以上是C#代码,只能进行单个转换,如果需要批量转换的话,则可以将dataset里面的数据先读入xml文件,然后在页面显示。

 //批量数据转换   
  
//其实就是将dataset的内容读出到xml文件,然后再输出   
  public   DataSet   ISO8859_GB2312(DataSet   ds)   
  
{   
  
string   xml;   
  xml   
=   ds.GetXml();   
  ds.Clear();   
  
//声明字符集   
  System.Text.Encoding   iso8859,gb2312;   
  
//iso8859   
  iso8859         =   System.Text.Encoding.GetEncoding("iso8859-1");   
  
//国标2312   
  gb2312   =   System.Text.Encoding.GetEncoding("gb2312");   
  
byte[]   bt;   
  bt   
=   iso8859.GetBytes(xml);   
  xml   
=   gb2312.GetString(bt);   
  ds.ReadXml(
new   System.IO.StringReader(xml));   
  
return   ds;   
  }
   
posted @ 2014-01-02 09:09  莫为然  阅读(246)  评论(0编辑  收藏  举报