当我们在post或者get 传送中文字符的时候,得到的中文字符是乱码的,这是我们应该的传送的参数进行编码,例如encodeURI(content), content 是传的的数据,
下面以一个具体的get传送中文字符例子来做说明:
原理是:在一个textarea的值传递给一个页面,然后在iframe 显示,
主要代码:
编码:
function encodeURL() {
var content = document.getElementById("txt_content").innerHTML;
var iframe = document.getElementById("frame_demo");
iframe.src = "url_content.aspx?content="+encodeURI(content);
}
解码:
string url_content=string.Empty;
if (Request.QueryString["content"] != null)
url_content =Server.UrlDecode(Request.QueryString["content"].ToString());
this.lb_conten.InnerHtml = url_content;
效果图:
源码:
encodeURL.aspx页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="encodeURL.aspx.cs" Inherits="URL编码_encodeURL" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" language="ecmascript">
function encodeURL() {
var content = document.getElementById("txt_content").innerHTML;
var iframe = document.getElementById("frame_demo");
iframe.src = "url_content.aspx?content="+encodeURI(content);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<p>把值传入iframe标签去</p>
<div style=" float:left">
<fieldset style=" width:410px; height:220px">
<legend>请填写传入内容</legend>
<textarea rows="10" cols="60" style=" width:400px; height:200px" id="txt_content">
</textarea>
</fieldset>
</div>
<div style=" float:left; text-align:center; vertical-align:middle; width:60px; height:220px">
<br />
<br />
<br />
<br />
<br />
<br />
<input type="button" id="Button1" value="确定" οnclick="encodeURL();" />
</div>
<div style=" float:left">
<fieldset style=" width:600px; height:220px">
<legend>结果</legend>
<iframe frameborder="1" scrolling="no" height="200" width="100%" src="" name="frame_demo"
id="frame_demo" ></iframe>
</fieldset>
</div>
</div>
</form>
</body>
</html>
url_content.aspx源码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="url_content.aspx.cs" Inherits="URL编码_url_content" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div >
<label id="lb_conten" runat="server"></label>
</div>
</form>
</body>
</html>
url_content.aspx.cs源码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class URL编码_url_content : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string url_content=string.Empty;
if (Request.QueryString["content"] != null)
url_content = Server.UrlDecode(Request.QueryString["content"].ToString());
this.lb_conten.InnerHtml = url_content;
}
}