2015-03-31 124 views
0

是否有可能从查询字符串中获取原始字节?如何从查询字符串中获取原始字节

我有有窗户-1250和url编码的字节和的Request.QueryString [“XX”]是字符串(在UTF-16内部编码)

我需要字节,以便能够将其从转换窗口-1250为UTF-8

样品为LINQpad如下:

void Main() 
{ 
    var txt="p%E1lava"; // this and next line simulates Request.QueryString["txt"] 
    txt = HttpUtility.UrlDecode(txt); 
    Console.WriteLine(txt); 
    Encoding wind1250 = Encoding.GetEncoding(1250); 
    Encoding utf8 = Encoding.UTF8; 
    byte[] wind1250Bytes = wind1250.GetBytes(txt); // here is problem, bytes are internally utf-16 
    byte[] utf8Bytes = Encoding.Convert(wind1250, utf8, wind1250Bytes); 
    string utf8String = Encoding.UTF8.GetString(utf8Bytes); 
    Console.WriteLine(utf8String); 
} 

回答

1

我发现溶液,需要在使用Request.Url.Query UrlDecode(用编码指定):

var wind1250 = Encoding.GetEncoding(1250); 


var querystring = HttpUtility.UrlDecode(Request.Url.Query, wind1250);//;  
var qs = HttpUtility.ParseQueryString(querystring); 
Response.Write(qs["Where"]); 
相关问题