这是因为把中文转换成utf-8格式并显示为十六进制编码的原因!

解决方案 »

  1.   

    str="http://www.google.com/search?q=" + HttpUtility.UrlEncode("张三")
      

  2.   

    HttpServerUtility.UrlEncode 方法  [C#]请参见
    HttpServerUtility 类 | HttpServerUtility 成员 | System.Web 命名空间 | C++ 托管扩展编程 语言
    C#C++JScriptVisual Basic全部显示
    编码字符串,以便通过 URL 从 Web 服务器到客户端进行可靠的 HTTP 传输。
    重载列表
    对字符串进行 URL 编码,并返回已编码的字符串。
    [Visual Basic] Overloads Public Function UrlEncode(String) As String
    [C#] public string UrlEncode(string);
    [C++] public: String* UrlEncode(String*);
    [JScript] public function UrlEncode(String) : String;
    URL 对字符串进行编码,并将结果输出发送到 TextWriter 输出流。
    [Visual Basic] Overloads Public Sub UrlEncode(String, TextWriter)
    [C#] public void UrlEncode(string, TextWriter);
    [C++] public: void UrlEncode(String*, TextWriter*);
    [JScript] public function UrlEncode(String, TextWriter);
    示例
    [Visual Basic, C#, JScript] 下面的示例对通过 HTTP 传输的字符串进行编码。它对名为 TestString 的字符串进行编码,该字符串包含文本“This is a <Test String>.”,然后将该字符串复制到名为 EncodedString 的字符串中,该字符串包含的文本为“This+is+a+%3cTest+String%3e.”。
    [Visual Basic, C#, JScript] 注意   此示例显示如何使用 UrlEncode 的一个重载版本。有关其他可用示例,请参阅单独的重载主题。
    [Visual Basic] 
    Dim TestString As String = "This is a <Test String>."
    Dim writer As New StringWriter
    Server.UrlEncode(TestString, writer)
    Dim EncodedString As String = writer.ToString()
    [C#] 
    String TestString = "This is a <Test String>.";
    StringWriter writer = new StringWriter();
    Server.UrlEncode(TestString, writer);
    String EncodedString = writer.ToString();
      

  3.   

    acewang,我是过了,可是转换的结果好像是乱码
      

  4.   

    一般中文通过URL传送时要加上面函数,不然会有时出现乱码
      

  5.   

    如果直接用在前台页面当中中文是不支持的如果写在后台HttpUtility.UrlEncode(“中文”)
      

  6.   

    如果是在页面的后置代码里写的话就
    str="http://www.google.com/search?q=" + Server.UrlEncode("张三");
    写在html里也可以:
    <a src="http://www.google.com/search?q=<%=Server.UrlEncode("张三")%>">张三</a>