<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ls /proc &#187; jquery</title>
	<atom:link href="http://www.lsproc.com/blog/tag/jquery/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lsproc.com/blog</link>
	<description>lsproc.com</description>
	<lastBuildDate>Fri, 18 Nov 2011 09:22:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Ajax 提交数据加号与连接符丢失</title>
		<link>http://www.lsproc.com/blog/ajax_char_lose/</link>
		<comments>http://www.lsproc.com/blog/ajax_char_lose/#comments</comments>
		<pubDate>Thu, 08 Jan 2009 03:09:48 +0000</pubDate>
		<dc:creator>lostsnow</dc:creator>
				<category><![CDATA[Program&Database]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.lostk.com/blog/?p=195</guid>
		<description><![CDATA[转载时请标明文章原始出处和作者信息, 作者: lostsnow.http://www.lsproc.com/blog/ajax_char_lose/ 采用Ajax传递数据时，通常会将数据整理为data="var1=abc&#038;var2=def"。而当数据中存在加号(+)或是连接符(&#038;)时，服务器端接收数据时会有部分数据丢失现象。分析一下Ajax传递数据的格式与Javascript的语法不难发现： 1. "+"号：JavaScript解析为字符串连接符，所以服务器端接收数据时"+"会丢失。 2. "&#038;"：JavaScript解析为变量连接符，所以服务器端接收数据时&#038;符号以后的数据都会丢失。 解决办法也相当简单，只需要为+与&#038;符号编码即可： function vchar(str) { str = str.replace(/\+/g, &#34;%2B&#34;); str = str.replace(/\&#38;/g, &#34;%26&#34;); return str; } var1 = &#34;abc+kef&#34;; var2 = &#34;abc&#38;kef&#34;; var1 = vchar(var1); var2 = vchar(var2); alert(var1); alert(var2); 使用jquery的话可以使用如下方式提交 var params &#8230; <a href="http://www.lsproc.com/blog/ajax_char_lose/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>转载时请标明文章原始出处和作者信息, 作者: <a href="http://www.lsproc.com/blog/">lostsnow</a>.<br /><a href="http://www.lsproc.com/blog/ajax_char_lose/">http://www.lsproc.com/blog/ajax_char_lose/</a></p>
<p>采用Ajax传递数据时，通常会将数据整理为data="var1=abc&#038;var2=def"。而当数据中存在加号(+)或是连接符(&#038;)时，服务器端接收数据时会有部分数据丢失现象。分析一下Ajax传递数据的格式与Javascript的语法不难发现：</p>
<p>1. "+"号：JavaScript解析为字符串连接符，所以服务器端接收数据时"+"会丢失。</p>
<p>2. "&#038;"：JavaScript解析为变量连接符，所以服务器端接收数据时&#038;符号以后的数据都会丢失。</p>
<p>解决办法也相当简单，只需要为+与&#038;符号编码即可：</p>
<pre class="brush: javascript">
function vchar(str) {
    str = str.replace(/\+/g, &quot;%2B&quot;);
    str = str.replace(/\&amp;/g, &quot;%26&quot;);
    return str;
}
var1 = &quot;abc+kef&quot;;
var2 = &quot;abc&amp;kef&quot;;   

var1 = vchar(var1);
var2 = vchar(var2);   

alert(var1);
alert(var2);
</pre>
<p>使用jquery的话可以使用如下方式提交</p>
<pre class="brush: javascript">
var params = $(&#039;input, textarea&#039;).serialize();
$.ajax({
    type: &#039;post&#039;,
    url: &#039;xxxx.php&#039;,
    data: params,
    success: function(response){
        ......
    }
});
</pre>
<p>参考: http://www.phplamp.org/2008/11/javascript-ajax-char-lose/
<p>-- EOF --</p>
<h2  class="related_post_title">Related Posts</h2><ul class="related_post"><li>2010-04-13 -- <a href="http://www.lsproc.com/blog/copy_to_clipboard/" title="复制到剪切板 &#8211; 兼容 ie, firefox, chrome &#038; flash10">复制到剪切板 &#8211; 兼容 ie, firefox, chrome &#038; flash10</a> (5)</li><li>2008-01-23 -- <a href="http://www.lsproc.com/blog/limit_textarea_length_by_js/" title="Js控制输入字符数限制">Js控制输入字符数限制</a> (0)</li><li>2008-01-12 -- <a href="http://www.lsproc.com/blog/auto_resize_images/" title="自动等比例缩放网页中的图片">自动等比例缩放网页中的图片</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.lsproc.com/blog/ajax_char_lose/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

