一般有3种方法:

1.设置web.config文件

2.传递中文之前,将要传递的中文参数进行编码,在接收时再进行解码。 

传递 
string Name = "中文参数"; 
Response.Redirect("B.aspx?Name="+Server.UrlEncode(Name)); 
接收 
string Name = Request.QueryString["Name"]; 
Response.Write(Server.UrlDecode(Name));

3.如果是从 .HTML 文件向Aspx 文件进行传递中文参数的话(即不从后台用 Redirect()方法进行 Url 转换)。一样要将传递的中文参数进行编码,在接收时再进行解码。 
传递 
< type="JavaScript/text"> 
function GoUrl() 
{ 
  var Name = "中文参数"; 
location.href = "B.aspx?Name="+escape(Name); 
} 
接收 
string Name = Request.QueryString["Name"]; 
Response.Write(Server.UrlDecode(Name));

一般设置web.config文件就可以了。

但是如果你用 JavaScript 调用 webservice 方法的话(往webservice里面传递中文参数)。设置 web.config 文件貌似是无效的,依然乱码。

Response.Redirect("test1.aspx?111="+System.Web.HttpUtility.UrlEncode("中国"));  这样似乎挺好。

ASP.NET中Url中文处理相关问题

ASP.NET的中文乱码问题,归根结底都是因为使用编码方式不匹配造成的。因为常常需要通过URL字符串在不同页面间传递参数时遇到中文,必须进行编码和解码,否则传递的参数不正确。一般使用 Server.UrlEncode 和 Server.UrlDecode 就可以解决问题了,但是有时会遇到特殊情况:

需要设置如下的全局配置

以下参考某某作者,忘记了,不好意思

但是 requestEncoding="gb2312" 使得url传递的中文无法通过Server.UrlEncode 和 Server.UrlDecode 正确编码和解码,于是只好使用了自定义的编码和解码方案:

/// 
  /// 编码 
  ///

  static public string EnCodeBase64(string code_type,string code) 
  { 
   string encode = ""; 
   if(code_type == null) 
   { 
    code_type = "unicode"; 
   } 
   if(code != null && code.Length > 0) 
   { 
    byte[] bytes = System.Text.Encoding.GetEncoding(code_type).GetBytes(code); 
    try 
    { 
     encode = Convert.ToBase64String(bytes); 
    } 
    catch 
    { 
     //encode = code; 
    } 
   } 
   return encode; 
  } 
  /// 
  /// 解码 
  /// 
  static public string DeCodeBase64(string code_type,string code) 
  { 
   string decode = ""; 
   if(code_type == null) 
   { 
    code_type = "unicode"; 
   } 
   if(code != null && code.Length > 0) 
   { 
    try 
    { 
     decode = Encoding.GetEncoding(code_type).GetString(Convert.FromBase64String(code)); 
    } 
    catch(Exception ex) 
    { 
     //Console.Write(ex.Message); 
     //decode = code; 
    } 
   } 
   return decode; 
  }

这样中文可以变成Base64形式避免了被ASP.NET错误转换,但是实际运行后发现还有问题:就是Base64码中包含加号+经过ASP.NET传递后会将+变成空格,导致Base64字符串被破坏。于是考虑在经过EnCodeBase64编码后再次使用Server.UrlEncode 编码(同样进行与之匹配的解码),这样问题解决!虽然经过两次编码,效率很低,但是也是特殊情况。

来源:http://blog.sina.com.cn/s/blog_865810200100t8lw.html

[转]Asp.Net url中文乱码的更多相关文章

  1. 一种另类的解决URL中文乱码问题--对中文进行加密、解密处理

    情景:在资源调度中,首先用户需要选择工作目标,然后跟据选择的工作目标不同而选择不同的账号和代理ip.处理过程如下:点击选择账号,在js中获取工作目标对工作目标进行两次编码(encodeURI(enco ...

  2. 解决URL中文乱码问题--对中文进行加密、解密处理

    解决URL中文乱码问题--对中文进行加密.解密处理 情景:在资源调度中,首先用户需要选择工作目标,然后跟据选择的工作目标不同而选择不同的账号和代理ip.处理过程如下:点击选择账号,在js中获取工作目标 ...

  3. asp.net oracle 中文乱码 解决方法

    asp.net oracle 中文乱码 解决方法 不需要去修改oracle以及client的字符集,只需要在web.config中连接字符串上加上 Unicode=True 问题解决. <add ...

  4. ueditor 1.4.3 gbk asp 上传中文乱码 终极解决方法 ie6 ie8 也适用

    [摘要:百度编纂器1.43 gbk asp 题目 1.firefox3.0下 单图上传 面没有了 面多图上传 中央的蓝色按钮(即 面击挑选图片)没有表现(附件上传出那个题目) 没有晓得我的水狐吃翔了 ...

  5. java中文乱码解决之道(八)-----解决URL中文乱码问题

    我们主要通过两种形式提交向服务器发送请求:URL.表单.而表单形式一般都不会出现乱码问题,乱码问题主要是在URL上面.通过前面几篇博客的介绍我们知道URL向服务器发送请求编码过程实在是实在太混乱了.不 ...

  6. URL中文乱码处理总结(转)

    转自:http://www.cnblogs.com/xirongliu/archive/2012/09/06/2674196.html 问题:传递中文参数的时候,接收页面出现乱码问题?当跨域操作,两套 ...

  7. URL中文乱码及特殊字符处理

    一.中文乱码 IE高版本(应该是9以上,不确定),在get方式请求中中文传到后台容易出现乱码问题.解决方法如下: 1.第一种,换成post方式 如果可以得话换成post方式就可以.如果采用表单或者aj ...

  8. 关于使用Tomcat搭建的Web项目,出现 URL 中文乱码的问题解析

    URL编码问题 问题描述 使用 Tomcat 开发一个 Java Web 项目的时候,相信大多数人都遇到过url出现中文乱码的情况,绝大多数人为了避免出现这种问题,所以设计 url 一般都会尽量设计成 ...

  9. 解决使用tomcat服务器发布web项目时出现URL中文乱码的问题

    打开Tomcat的安装路径 打开server.xml文件 在修改端口号的一行既是下图中位置添加 URIEncoding="UTF-8" 就能替换在用eclipse或者myeclip ...

随机推荐

  1. 在grid结果集中实现全选或全不选某些特定的行

    在script的中的代码如下: function check(){ var id = gridgetselectvalue("require_id"); if(id.length& ...

  2. js-原始类型和声明变量

    ** Java的基本数据类型:byte.short.int.long.float.double.char.boolean ** 定义变量 都是用关键字 var(ES6中可以使用const和let来定义 ...

  3. Cookie实现留言板

    Cookie实现留言板 直接代码: <!DOCTYPE html> <html> <head> <meta http-equiv="Content- ...

  4. 操作Hadoop集群

    操作Hadoop集群 所有必要的配置完成后,将文件分发到所有机器上的HADOOP_CONF_DIR目录.这应该是所有机器上相同的目录. 一般来说,建议HDFS和YARN作为单独的用户运行.在大多数安装 ...

  5. 08_Spring自定义标签

    [ 项目工程 ] [ Person.java 模型类 ] package com.spring.selfxml.model; /** * Created by HigginCui on 2018/9/ ...

  6. python的异常处理和模块发布安装

    1.完整的异常处理 异常处理能够保证程序出错是也能够完整运行,不会应为bug而停止运行,这里介绍下获取异常的完整格式 try: num = int(input("输入整数:")) ...

  7. keepalived+MySQL双主搭建

    keepalived+MySQL双主搭建过程 首先要简单了解一下keepalived: Keepalived是Linux下一个轻量级别的高可用解决方案.高可用(High Avalilability,H ...

  8. 【Leetcode】【Easy】Path Sum

    Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all ...

  9. vagrant安装centos7

    1. 安装VirtualBox 去官网https://www.virtualbox.org/wiki/Downloads下载最新版的Virtualbox,然后双击安装,一直点击确认完成. 2. 安装V ...

  10. 全文检索之solr学习

    solr下载: http://www.apache.org/dyn/closer.lua/lucene/solr/7.3.1 学习教程 除了官网的教程,一切教程都是可以有错误的. https://lu ...