您的位置:程序门 -> .net技术 -> c#



c# 连接mysql 取数据, mysql编码是latin1, 怎么转换成gbk?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


c# 连接mysql 取数据, mysql编码是latin1, 怎么转换成gbk?[已结贴,结贴人:www861168com]
发表于:2007-09-17 11:05:23 楼主
注:   mysql   的编码方式不能改,   只能通过程序来修改编码方式;郁闷!
发表于:2007-09-17 11:09:201楼 得分:2
up
发表于:2007-09-17 12:01:042楼 得分:3
web.config
数据库链接
data   source=192.168.1.5;database=test;user   id=uct;password=uct123456;charset=gb2312;
<system.web>
      <globalization   requestencoding= "gb2312 "   responseencoding= "gb2312 "   fileencoding   = "gb2312 "/>
    </system.web>
发表于:2007-09-17 13:51:333楼 得分:15
这个问题我碰到过,原因是string把latin1的编码方式用gb2312给解开了,那当然是乱码了。修正的思路也很简单,首先用把乱码的数据用gb2312还原到byte[],再用latin1重新解码即可。
很有效
发表于:2007-09-17 14:37:594楼 得分:0
mysql的编码方式是可以改成gbk的
发表于:2007-09-17 20:45:115楼 得分:0
to:277894613(秒大刀),谢谢你的提醒,同时感谢各位热心的朋友.
正确方法:
c#:
public   static   string   latin2gbk(string   str)
                {
                        try
                        {
                                byte[]   bytesstr   =   encoding.getencoding( "latin1 ").getbytes(str);
                                return   encoding.getencoding( "gb2312 ").getstring(bytesstr);
                        }
                        catch
                        {
                                return   str;
                        }
                }

java:
public   static   string   iso8859togbk(string   str)
        {
                try
                {
                        byte[]   bytesstr   =   str.getbytes( "iso8859_1 ");                  
                        return   new   string(bytesstr,   "gbk ");
                }
                catch   (exception   e)
                {
                        return   str;
                }
        }


快速检索

最新资讯
热门点击