Page_Load vacío protegido (remitente del objeto , EventArgs e) { Response.ContentEncoding = Codificación.GetEncoding( " gb2312 " ); // Request.ContentEncoding = Encoding.GetEncoding("gb2312"); // La configuración no es válida }
De esta manera, usamos gb2312 para cada respuesta. De acuerdo con el objeto de solicitud predeterminado de asp.net, la codificación es utf-8 cuando se inicializa, cuando ingresamos chino en el cuadro de texto y hacemos clic en el botón, la codificación de la solicitud es utf-. 8 y la codificación de respuesta es gb2312, por lo que los datos del cuadro de texto se vuelven confusos cuando se devuelven (la parte china del cuadro de texto muestra una cadena de signos de interrogación).
anulación protegida nula InitializeCulture() { base .InitializeCulture(); Request.ContentEncoding = Codificación.GetEncoding ( " gb2312 " ); }
Solución 2: obtenga la cadena de datos del formulario y analícela usted mismo
Codificación codificación = Encoding.GetEncoding ( " gb2312 " // Seleccione el método de decodificación ); Stream resStream = Request.InputStream; // Los formularios recibidos se colocan aquí. byte [] contenido = nuevo byte [resStream.Length]; resStream.Read(contenido, 0 , contenido.Longitud); cadena postQuery = codificación.GetString(contenido); // NameValueCollection resDic = HttpUtility.ParseQueryString(postQuery, encoding); // Resuelve el problema de codificación, aún se decodificará automáticamente de forma predeterminada;
A continuación se proporciona un método de análisis simple:
/// <resumen> /// Analizar cadena de consulta /// </summary> /// <param nombre="postQuery"></param> /// <devoluciones></devoluciones> NameValueCollection privado GetFormParams ( cadena postQuery) { Resultado de NameValueCollection = nueva NameValueCollection(); cadena [] nameValueList = postQuery.Split( ' & ' ); foreach (elemento de cadena en nameValueList) { si (elemento.Contiene ( ' = ' )) { cadena [] valornombre = item.Split( ' = ' ); resultado.Add(nombreValor[ 0 ], nombreValor[ 1 ]); } } resultado de devolución ; }