日期:2014-05-17  浏览次数:21333 次

HttpListener对象通过http传入参数读取app.xonfig列名无效和中文乱码
http://localhost:8080/web/?USERID=221122&MOBILE_NO=1500166624,1342655556&SMS_CONTENT=233222中文
 <add key="smscanshu" value="SMS_CONTENT"/> 
 string canshu4 = System.Configuration.ConfigurationManager.AppSettings["smscanshu"].ToString();
1.我通过读取app.config的参数明明传入的是233222中文 ,但是通过string c HttpListenerContext.Request.QueryString[canshu4];
既然是233222脰脨脦脛

2.在sql执行insert into SMS_MT([GUID],[USERID],NEED_DOWN_TIME,FACT_DOWN_TIME,MOBILE_NO,SMS_CLENGTH,SMS_CONTENT) values(newid(),'a333',getdate(),dateadd(second,2,getdate()),'1500166624','10','233222脰脨脦脛')可以
但是程序里就进catch说列名USERID无效 
 SqlCommand comm = new SqlCommand(string.Format("insert into SMS_MT([GUID],[USERID],NEED_DOWN_TIME,FACT_DOWN_TIME,MOBILE_NO,SMS_CLENGTH,SMS_CONTENT) values(newid(),'"+cc+"',getdate(),dateadd(second,2,getdate()),'" + q1 + "','" + LCONTENT + "','" + SMS_CONTENT + "')"), conn);
                                conn.Open();
                                comm.ExecuteNonQuery();
                                conn.Close();
乱码

------解决方案--------------------
第一个问题,看看你的编码格式
第二个问题,调试取到你的sql语句放到数据库执行或提出来看看
------解决方案--------------------
        public static Dictionary<string, string> EncodeQueryString(this Uri uri)
        {
            var ret = new Dictionary<string, string>();
            var q = uri.Query;
            if (q.Length > 0)