C#接收浏览器信息的中文编码问题 带有中文的参数用System.Web.HttpUtility.UrlEncode()编码,接收时直接Request如:xxx.aspx?id=System.Web.HttpUtility.UrlEncode("中国");则可以在xxx.aspx中:Request["id"] 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一般用byte[]进行转换string strOld = "unicode的字符串";byte[] bytes = System.Text.encoding.default.GetBytes(strold);string strNew = System.Text.Encoding.GetEncoding("gb2312").getString(bytes); System.Text.encoding.default.GetBytes(yourstring); 非常感谢,但是上面的办法都不行。可能我没有表达清楚。得到%B2%E2%CA%D4证明编码是没有错误的,页面向程序提交的时候会把中文转换成这种格式以在网上传播。现在的问题是如何能将这编码再转回中文。这个编码的中文是"测试"两个字。 在论坛里找到了答案。下面得是引用 xiaha3(夏) 的代码。public string check(string s1) { Encoding enc = Encoding.GetEncoding("GB2312"); char c,d; byte a=0,b=0; byte[] bytes=new byte[s1.Length /2]; char[] chars=new char[s1.Length]; char[] chars1=s1.ToCharArray (); for(int i=0 ;i<chars1.Length ;i=i+2) {c=chars1[i]; d=chars1[i+1]; switch( c) { case 'A': a=(byte)10; break; case 'B': a=(byte)11; break; case 'C': a=(byte)12; break; case 'D': a=(byte)13; break; case 'E': a=(byte)14; break; case 'F': a=(byte)15; break; default: a=byte.Parse(chars1[i].ToString ()); break; } switch(d) { case 'A': b=(byte)10; break; case 'B': b=(byte)11; break; case 'C': b=(byte)12; break; case 'D': b=(byte)13; break; case 'E': b=(byte)14; break; case 'F': b=(byte)15; break; default: b=byte.Parse (chars1[i+1].ToString ()); break; } bytes[i/2]=(byte)(a*16+b); } string s=enc.GetString(bytes); int co=s.Length ; return s.ToString (); } 在DataGridView 里面添加了一行后,怎么样添加这行的顏色 回车键键事件是怎么做的? TreeView 问题? 菜鸟求助关于C#的引用问题? 如何实现只取数字和横线的函数呀! [2005-10-3 星期一 离L]如我只取出数字和横线] 如何根据一个System.Type示例化一个对象 网站发布问题,帮帮忙!急!!! 怎样实现递归删除??????????????? 当关闭主窗体时,我的程序为什么没有结束??? 哪里有完整的C#开发环境?(详细说明见具体内容) 添加记录的方法一般用哪一种呢? 请高手指点,远程调用的问题?
string strOld = "unicode的字符串";
byte[] bytes = System.Text.encoding.default.GetBytes(strold);
string strNew = System.Text.Encoding.GetEncoding("gb2312").getString(bytes);
得到%B2%E2%CA%D4证明编码是没有错误的,页面向程序提交的时候会把中文转换成这种格式以在网上传播。现在的问题是如何能将这编码再转回中文。
这个编码的中文是"测试"两个字。
public string check(string s1)
{
Encoding enc = Encoding.GetEncoding("GB2312");
char c,d;
byte a=0,b=0;
byte[] bytes=new byte[s1.Length /2];
char[] chars=new char[s1.Length];
char[] chars1=s1.ToCharArray ();
for(int i=0 ;i<chars1.Length ;i=i+2)
{c=chars1[i];
d=chars1[i+1];
switch( c)
{
case 'A':
a=(byte)10;
break;
case 'B':
a=(byte)11;
break;
case 'C':
a=(byte)12;
break;
case 'D':
a=(byte)13;
break;
case 'E':
a=(byte)14;
break;
case 'F':
a=(byte)15;
break;
default:
a=byte.Parse(chars1[i].ToString ());
break;
}
switch(d)
{
case 'A':
b=(byte)10;
break;
case 'B':
b=(byte)11;
break;
case 'C':
b=(byte)12;
break;
case 'D':
b=(byte)13;
break;
case 'E':
b=(byte)14;
break;
case 'F':
b=(byte)15;
break;
default:
b=byte.Parse (chars1[i+1].ToString ());
break;
}
bytes[i/2]=(byte)(a*16+b);
}
string s=enc.GetString(bytes);
int co=s.Length ;
return s.ToString ();
}