如何将GB2312转换成UTF8

时间:2021-04-18 20:17:18
原来的页面是gb2312的
后台加了个论坛是utf8的
结果原来页面传递过去后的代码是乱码
怎么解决

19 个解决方案

#1


在webconfig中配置一下就可以 了

#2


web.config里面去配

#3


<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>

#4


首先编码是改不了的了
只能获取数据后转换

#5


我现在需要的是转换程序

#6


做成2个站点,原来的一个域名,论坛单独一个域名
然后各自使用各自的编码方案,这个不会有冲突的
http://www.***.com
http://bbs.***.com

#7


一鹤 文件播种机
把你们gb2312的文件全部转换成utf-8的
再改web.config

#8



光改web.config是不行的

要把gb2314转成urf8 

不能批量转就用文件另存为urf8

#9


各位我不知要转编码
而是原来页面提交一个有中文的数据到新页面
结果显示是乱码
现在我想要的是怎么转换这个数据才能正常显示
我试过这个不行
    /// <summary>
    /// 从一种编码到另一种编码
    /// </summary>
    /// <param name="str">源字符串</param>
    /// <param name="From">From</param>
    /// <param name="To">To</param>
    /// <returns></returns>
    string ConertStr(string str, string From, string To)
    {

        byte[] bs = System.Text.Encoding.GetEncoding(From).GetBytes(str);
        bs = System.Text.Encoding.Convert(System.Text.Encoding.GetEncoding(From), System.Text.Encoding.GetEncoding(To), bs);
        string res = System.Text.Encoding.GetEncoding(To).GetString(bs);
        return res;

    }

#10


在获得传递过来的数据后,加上.getBytes("utf-8").toString()

如:request.getParameter("").getBytes("utf-8").toString();

#11


我个人觉得中文URL传递,乱码问题无法解决.用中文传值始终都会有问题出现

#12


你怎么获得?等你获得到传过来的值时已经成了乱码,你再怎么转换格式,它已经不是原始数据了.要解决,只能是在传递之前找个中间的格式转换方式,先转换后传.

#13


楼上的,这么说就不对了!
中文乱码问题是普遍存在,但是都是可以解决的!而且有多种解决方法,楼主想要的获得后再转换就是可行的!

在获得传递过来的数据后,加上.getBytes("utf-8").toString() 

如:request.getParameter("").getBytes("utf-8").toString();确实是有用!

至于你所谓的,在转换之前已经不是原始数据了!这我也不知道该怎么解释!
一个数据无论怎么传递,也无论用什么编码传递,用什么编码获得,但是,只要他都能保持一种编码值,只要你在适当的时候(在其编码变为乱码之前)转换,仍旧是能够恢复到他的原始状态的!

#14


getParameter没看到啊

#15


              byte[] bytes = System.Text.Encoding.UTF8.GetBytes(sResultContents);
                ////取得的utf-8编码转换成gb2312编码///关键就这几句了   
                System.Text.Encoding utf8 = System.Text.Encoding.GetEncoding("utf-8");
                System.Text.Encoding gb2312 = System.Text.Encoding.GetEncoding("gb2312");
                System.Text.Encoding.Convert(utf8, gb2312, bytes);
                System.Text.Encoding.Convert(utf8, gb2312, bytes);  

#16


现在的问题是一个gb编码asp页面
post带中文的数据到一个utf8编码的aspx页面
数据显示是乱码

例如
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>无标题页</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
</head>
<body>
<form method="post" action="1.aspx">
<input type="text" name="aa" />

<input id="Submit1" type="submit" value="submit" />
</form>
</body>
</html>


public partial class _1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string ss = Request.Form["aa"];
        ltl.Text = ss;
    }
}


结果显示是乱码

#17


Request.ContentEncoding = Encoding.GetEncoding("gb2312");

#18


ls的加了还是乱码

#19


request.getParameter("").getBytes("utf-8").toString();
没有用,c#和vb都没有这个。。。

#1


在webconfig中配置一下就可以 了

#2


web.config里面去配

#3


<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>

#4


首先编码是改不了的了
只能获取数据后转换

#5


我现在需要的是转换程序

#6


做成2个站点,原来的一个域名,论坛单独一个域名
然后各自使用各自的编码方案,这个不会有冲突的
http://www.***.com
http://bbs.***.com

#7


一鹤 文件播种机
把你们gb2312的文件全部转换成utf-8的
再改web.config

#8



光改web.config是不行的

要把gb2314转成urf8 

不能批量转就用文件另存为urf8

#9


各位我不知要转编码
而是原来页面提交一个有中文的数据到新页面
结果显示是乱码
现在我想要的是怎么转换这个数据才能正常显示
我试过这个不行
    /// <summary>
    /// 从一种编码到另一种编码
    /// </summary>
    /// <param name="str">源字符串</param>
    /// <param name="From">From</param>
    /// <param name="To">To</param>
    /// <returns></returns>
    string ConertStr(string str, string From, string To)
    {

        byte[] bs = System.Text.Encoding.GetEncoding(From).GetBytes(str);
        bs = System.Text.Encoding.Convert(System.Text.Encoding.GetEncoding(From), System.Text.Encoding.GetEncoding(To), bs);
        string res = System.Text.Encoding.GetEncoding(To).GetString(bs);
        return res;

    }

#10


在获得传递过来的数据后,加上.getBytes("utf-8").toString()

如:request.getParameter("").getBytes("utf-8").toString();

#11


我个人觉得中文URL传递,乱码问题无法解决.用中文传值始终都会有问题出现

#12


你怎么获得?等你获得到传过来的值时已经成了乱码,你再怎么转换格式,它已经不是原始数据了.要解决,只能是在传递之前找个中间的格式转换方式,先转换后传.

#13


楼上的,这么说就不对了!
中文乱码问题是普遍存在,但是都是可以解决的!而且有多种解决方法,楼主想要的获得后再转换就是可行的!

在获得传递过来的数据后,加上.getBytes("utf-8").toString() 

如:request.getParameter("").getBytes("utf-8").toString();确实是有用!

至于你所谓的,在转换之前已经不是原始数据了!这我也不知道该怎么解释!
一个数据无论怎么传递,也无论用什么编码传递,用什么编码获得,但是,只要他都能保持一种编码值,只要你在适当的时候(在其编码变为乱码之前)转换,仍旧是能够恢复到他的原始状态的!

#14


getParameter没看到啊

#15


              byte[] bytes = System.Text.Encoding.UTF8.GetBytes(sResultContents);
                ////取得的utf-8编码转换成gb2312编码///关键就这几句了   
                System.Text.Encoding utf8 = System.Text.Encoding.GetEncoding("utf-8");
                System.Text.Encoding gb2312 = System.Text.Encoding.GetEncoding("gb2312");
                System.Text.Encoding.Convert(utf8, gb2312, bytes);
                System.Text.Encoding.Convert(utf8, gb2312, bytes);  

#16


现在的问题是一个gb编码asp页面
post带中文的数据到一个utf8编码的aspx页面
数据显示是乱码

例如
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>无标题页</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
</head>
<body>
<form method="post" action="1.aspx">
<input type="text" name="aa" />

<input id="Submit1" type="submit" value="submit" />
</form>
</body>
</html>


public partial class _1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string ss = Request.Form["aa"];
        ltl.Text = ss;
    }
}


结果显示是乱码

#17


Request.ContentEncoding = Encoding.GetEncoding("gb2312");

#18


ls的加了还是乱码

#19


request.getParameter("").getBytes("utf-8").toString();
没有用,c#和vb都没有这个。。。

#20