﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-备注学院</title><link>http://www.blogjava.net/smildlzj/</link><description>LuLu</description><language>zh-cn</language><lastBuildDate>Mon, 13 Apr 2026 19:24:41 GMT</lastBuildDate><pubDate>Mon, 13 Apr 2026 19:24:41 GMT</pubDate><ttl>60</ttl><item><title>免费天气预警/天气预报/股票/基金/RSS短信订阅</title><link>http://www.blogjava.net/smildlzj/archive/2011/08/02/355617.html</link><dc:creator>smildlzj</dc:creator><author>smildlzj</author><pubDate>Tue, 02 Aug 2011 12:44:00 GMT</pubDate><guid>http://www.blogjava.net/smildlzj/archive/2011/08/02/355617.html</guid><wfw:comment>http://www.blogjava.net/smildlzj/comments/355617.html</wfw:comment><comments>http://www.blogjava.net/smildlzj/archive/2011/08/02/355617.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/smildlzj/comments/commentRss/355617.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/smildlzj/services/trackbacks/355617.html</trackback:ping><description><![CDATA[<h2><span style="font-family: Verdana">网址：<a href="http://s.open-lib.com/"><font color="#3d81ee">http://s.open-lib.com/</font></a></span></h2>
<h2><span style="font-family: Verdana">前言：</span></h2>
<p><span style="font-family: Verdana">今年年头天气比较多变，气温变化较大，因此每天早上看天气预报，然后告知女朋友，体形她注意，每天机械式的重复，有时候忘记可能会被P，虽然没发生过忘记。。</span></p>
<p><span style="font-family: Verdana">能不能采取自动化任务代替这样的重复劳动呢？</span></p>
<p><span style="font-family: Verdana">幸亏我们是强大的码农，只怕没IDEA，不怕做不到。。。。。</span></p>
<h2><span style="font-family: Verdana">原理：</span></h2>
<p><span style="font-family: Verdana">其实原理很简单，就是定时抓取指定城市的天气信息，然后组装成要的内容，发送邮件。</span></p>
<p><span style="font-family: Verdana">不是说短信吗？怎么变了邮件了？</span></p>
<p><span style="font-family: Verdana">大家别急，这里是利用几大运营商的免费的邮件到达提醒实现的，也就发送邮件，当对方接收到邮件，自动发短信到手机，并且显示邮件部分内容。</span></p>
<p>&nbsp;</p>
<h2><span style="font-family: Verdana">说说：</span></h2>
<p><span style="font-family: Verdana">1、免费、不限制订阅数量、支持一个任务发送多人（大家轻着点，别把服务器弄挂了）；不支持时分秒定时任务</span></p>
<p><span style="font-family: Verdana">2、支持订阅类型：今明两天的天气预报，股票信息，基金信息，RSS。</span></p>
<p><span style="font-family: Verdana"></span>&nbsp;</p>
<p><span style="font-family: Verdana">示例：</span></p><span style="font-family: Verdana">
<p>基金：嘉实多元债券A[2011-08-01]最新净值:1.071,昨日净值:1.071,升幅:0.00%。</p>
<p><br />股票：[中牧股份]：今日开盘价:22.60,当前价格:22.20,今日最高价:22.60,今日最低价:22.19。&nbsp; </p>
<p>&nbsp;</p>
<p>明天天气预报：东莞明天温度：东莞，34&#8451;~26&#8451;，多云，微风(小于3级)。 </p>
<p>&nbsp;</p>
<p>&nbsp;天气预警：新疆维吾尔自治区吐鲁番地区气象台发布高温橙色预警。&nbsp; （需重新调整，太抽象了；未开放）</p>
<p></span><font face="Georgia">&nbsp;</font></p>
<h2><span style="font-family: Verdana">展望未来：</span></h2>
<p><span style="font-family: Verdana">1、现在在弄个天气预警，也就是一旦天文台发布台风XX警报之类，会很快的发到用户的手机，实现及时提醒，不过这部分还在测试当中，还没开放。</span></p>
<p><span style="font-family: Verdana">2、支持短信上行、邮件回复、GTALK远程命令（列表，停止，启动之类），暂时也没对外开放，要试用的，可以联系我。。</span></p>
<p><span style="font-family: Verdana"></span>&nbsp;</p>
<p><span style="font-family: Verdana">支援：<a href="http://www.open-lib.com/Forum/Forum_13_1.action"><font color="#3d81ee">http://www.open-lib.com/Forum/Forum_13_1.action</font></a></span></p><img src ="http://www.blogjava.net/smildlzj/aggbug/355617.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/smildlzj/" target="_blank">smildlzj</a> 2011-08-02 20:44 <a href="http://www.blogjava.net/smildlzj/archive/2011/08/02/355617.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jQuery ajax在GBK编码下表单提交终极解决方案（非二次编码方法）</title><link>http://www.blogjava.net/smildlzj/archive/2010/10/18/335484.html</link><dc:creator>smildlzj</dc:creator><author>smildlzj</author><pubDate>Mon, 18 Oct 2010 12:08:00 GMT</pubDate><guid>http://www.blogjava.net/smildlzj/archive/2010/10/18/335484.html</guid><wfw:comment>http://www.blogjava.net/smildlzj/comments/335484.html</wfw:comment><comments>http://www.blogjava.net/smildlzj/archive/2010/10/18/335484.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/smildlzj/comments/commentRss/335484.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/smildlzj/services/trackbacks/335484.html</trackback:ping><description><![CDATA[<p><span style="color: #ff0000" _mce_style="color: #ff0000;"><span style="font-size: medium" _mce_style="font-size: medium;"><span style="color: #0000ff" _mce_style="color: #0000ff;"><strong>[版权声明]:版权归作者所有，转载时请以超链接形式标明文章原始出处和作者信息及本声明:<br />
</strong></span></span></span><span style="color: #ff0000" _mce_style="color: #ff0000;"><span style="font-size: medium" _mce_style="font-size: medium;"><span style="color: #0000ff" _mce_style="color: #0000ff;"><strong><span style="color: #ff0000" _mce_style="color: #ff0000;"><span style="font-size: medium" _mce_style="font-size: medium;"><span style="color: #0000ff" _mce_style="color: #0000ff;"><a href="http://www.open-lib.com/Forum/Read_69_1.action" target="_blank" _mce_href="http://www.open-lib.com/Forum/Read_69_1.action"><strong>http://www.open-lib.com/Forum/Read_69_1.action</strong></a></span></span></span></strong></span></span></span></p>
<p><span style="color: #ff0000" _mce_style="color: #ff0000;"><strong><span style="font-size: medium" _mce_style="font-size: medium;">前言:</span></strong></span></p>
<p>当jquery ajax在utf-8编码下（页面utf－8，接收utf-8），无任何问题。可以正常post、get，处理页面直接获取正确的内容。</p>
<p>但在以下情况下:</p>
<p>GBK -&gt; AJAX POST -&gt;GBK</p>
<p>UTF-8 -&gt; AJAX POST -&gt;GBK</p>
<p>后台代码无法获取正确的内容，通常表现为获取到奇怪字符、问号。</p>
<p><span style="font-size: medium" _mce_style="font-size: medium;"><strong><span style="color: #ff0000" _mce_style="color: #ff0000;">经典解决方法：</span></strong></span></p>
<p>1：发送页面、接收页面均采用UTF-8编码。</p>
<p>2：发送页面在调用ajax post方法之前，将含有中文内容的input用encodeURIComponent编码一次，而接收页面则调用解码方法（ 如：java.net.urldecoder.decode("接收到内容","utf-8")&nbsp; ）。</p>
<p><br />
其中，第一种方法无疑是最简单、最直接，但往往不符合实际，因为很多项目并不是使用utf-8编码，例如国内大部分使用gbk编码，也不可能为了解决这样一个问题，而将整个项目转换为utf-8编码，成本太大，风险太高。</p>
<p>第二方法，是现在最多人使用的方法，俗称二次编码，为什么叫二次编码，等下会解释。客户端编码两次，服务端解码两次。但这种方法不好的地方，就是前台手动编码一次，后台再手动解码一次，稍不留神就会忘记，而且代码掺和前台逻辑。</p>
<p><span style="font-size: medium" _mce_style="font-size: medium;"><strong><span style="color: #ff0000" _mce_style="color: #ff0000;">交互过程：</span></strong></span></p>
<p>当我们使用表单按照传统方式post提交时候（非AJAX提交），浏览器会根据当前页面编码，encode一次，然后发送到服务端，服务端接收到表单，会自动dencode一次，通常这个过程是对程序是透明的，因此加上手动编码、解码，就变成上面所说的二次编码。</p>
<p>但当我们使用AJAX方式提交时候，浏览器并不会自动替我们encode，因此在jquery中有这样的一段代码：<br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">ajax:&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">(&nbsp;s&nbsp;)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;Extend&nbsp;the&nbsp;settings,&nbsp;but&nbsp;re-extend&nbsp;'s'&nbsp;so&nbsp;that&nbsp;it&nbsp;can&nbsp;be</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;checked&nbsp;again&nbsp;later&nbsp;(in&nbsp;the&nbsp;test&nbsp;suite,&nbsp;specifically)</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;jQuery.extend(</span><span style="color: #0000ff">true</span><span style="color: #000000">,&nbsp;s,&nbsp;jQuery.extend(</span><span style="color: #0000ff">true</span><span style="color: #000000">,&nbsp;{},&nbsp;jQuery.ajaxSettings,&nbsp;s));<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;jsonp,&nbsp;jsre&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/=?</span><span style="color: #000000">(</span><span style="color: #000000">&amp;|</span><span style="color: #000000">$)</span><span style="color: #000000">/</span><span style="color: #000000">g,&nbsp;status,&nbsp;data,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;s.type.toUpperCase();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;convert&nbsp;data&nbsp;if&nbsp;not&nbsp;already&nbsp;a&nbsp;string</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(&nbsp;s.data&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;s.processData&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">typeof</span><span style="color: #000000">&nbsp;s.data&nbsp;</span><span style="color: #000000">!==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">string</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.data&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;jQuery.param(s.data);<br />
<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><img src="http://www.blogjava.net/Images/dot.gif"  alt="" />..&nbsp;&nbsp;&nbsp;&nbsp;<br />
}</span></div>
<p>&nbsp;</p>
<p>以上是jquery的ajax方法的代码片段，下面是正常调用jquery ajax post的代码：</p>
<pre class="code brush: jscript;fontsize: 100; first-line: 1; ">
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">$.ajax({<br />
&nbsp;url:&nbsp;ajaxurl,<br />
&nbsp;type:&nbsp;'POST',<br />
&nbsp;dataType:&nbsp;'html',<br />
&nbsp;timeout:&nbsp;</span><span style="color: #000000">20000</span><span style="color: #000000">,</span><span style="color: #008000">//</span><span style="color: #008000">超时时间设定</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;data:para,</span><span style="color: #008000">//</span><span style="color: #008000">参数设置</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;success:&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">(html){<br />
<br />
&nbsp;}<br />
});<br />
</span></div>
</pre>
<p>通过上面代码可以知道，当设置了data时候，jquery内部会调用jQuery.param方法对参数encode（执行本应浏览器处理的encode）。</p>
<pre class="code brush: jscript;fontsize: 100; first-line: 1; ">
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">jQuery.param</span><span style="color: #000000">=</span><span style="color: #0000ff">function</span><span style="color: #000000">(&nbsp;a&nbsp;)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;s&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;[&nbsp;];<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;add(&nbsp;key,&nbsp;value&nbsp;){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s[&nbsp;s.length&nbsp;]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;encodeURIComponent(key)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;'</span><span style="color: #000000">=</span><span style="color: #000000">'&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;encodeURIComponent(value);<br />
&nbsp;&nbsp;&nbsp;&nbsp;};<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;If&nbsp;an&nbsp;array&nbsp;was&nbsp;passed&nbsp;in,&nbsp;assume&nbsp;that&nbsp;it&nbsp;is&nbsp;an&nbsp;array</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;of&nbsp;form&nbsp;elements</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(&nbsp;jQuery.isArray(a)&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;a.jquery&nbsp;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;Serialize&nbsp;the&nbsp;form&nbsp;elements</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jQuery.each(&nbsp;a,&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add(&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.name,&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.value&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;Otherwise,&nbsp;assume&nbsp;that&nbsp;it's&nbsp;an&nbsp;object&nbsp;of&nbsp;key/value&nbsp;pairs</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;Serialize&nbsp;the&nbsp;key/values</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;j&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;a&nbsp;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;If&nbsp;the&nbsp;value&nbsp;is&nbsp;an&nbsp;array&nbsp;then&nbsp;the&nbsp;key&nbsp;names&nbsp;need&nbsp;to&nbsp;be&nbsp;repeated</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(&nbsp;jQuery.isArray(a[j])&nbsp;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jQuery.each(&nbsp;a[j],&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add(&nbsp;j,&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add(&nbsp;j,&nbsp;jQuery.isFunction(a[j])&nbsp;</span><span style="color: #000000">?</span><span style="color: #000000">&nbsp;a[j]()&nbsp;:&nbsp;a[j]&nbsp;);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;Return&nbsp;the&nbsp;resulting&nbsp;serialization</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;s.join(</span><span style="color: #000000">"</span><span style="color: #000000">&amp;</span><span style="color: #000000">"</span><span style="color: #000000">).replace(</span><span style="color: #000000">/%</span><span style="color: #000000">20</span><span style="color: #000000">/</span><span style="color: #000000">g,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
}</span><span style="color: #008000">//</span><span style="color: #008000">jquery.param&nbsp;end</span></div>
</pre>
<p>上面是jQuery.param的代码，细心点可以留意到encodeURIComponent这方法，这是javascript内置的方法，对目标字符串执行utf-8 encode，因此，当页面使用gbk编码时候，服务端会使用gbk进行解码，但实际提交的数据是以utf-8编码的，所以造成接收到内容为乱码或者为问号。</p>
<p><span style="font-size: medium" _mce_style="font-size: medium;"><strong><span style="color: #ff0000" _mce_style="color: #ff0000;">解决方法：</span></strong></span></p>
<p>encodeURIComponent会以utf-8编码，在gbk编码下，可不可以以gbk进行编码呢？</p>
<p>如果还在打encodeURIComponent主意的话，那不好意思，encodeURIComponent只会utf-8编码，并没有其他api进行其他编码；不过，别担心，看看下面：</p>
<p><span style="color: #ff0000" _mce_style="color: #ff0000;">encodeURIComponent</span>，它是将中文、韩文等特殊字符转换成utf-8格式的url编码。</p>
<p><span style="color: #ff0000" _mce_style="color: #ff0000;">escape</span>对0-255以外的unicode值进行编码时输出%u****格式，其它情况下escape，encodeURI，encodeURIComponent编码结果相同。</p>
<p>哈哈，看到希望吧？没错，就是用<span style="color: #ff0000" _mce_style="color: #ff0000;">escape</span>代替<span style="color: #ff0000" _mce_style="color: #ff0000;">encodeURIComponent</span>方法，不过必须注意：</p>
<p><span style="color: #ff0000" _mce_style="color: #ff0000;">escape</span>不编码字符有69个：*，+，-，.，/，@，_，0-9，a-z，A-Z</p>
<p><span style="color: #ff0000" _mce_style="color: #ff0000;">encodeURIComponent</span>不编码字符有71个：!， '，(，)，*，-，.，_，~，0-9，a-z，A-Z</p>
<p>使用了<span style="color: #ff0000" _mce_style="color: #ff0000;">escape</span>之后必须对加号进行编码，否则，当内容含有加号时候会被服务端翻译为空格。</p>
<p>终于知道解决办法了，重写jquery代码：</p>
<pre class="code brush: jscript;fontsize: 100; first-line: 1; ">
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">jQuery.param</span><span style="color: #000000">=</span><span style="color: #0000ff">function</span><span style="color: #000000">(&nbsp;a&nbsp;)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;s&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;[&nbsp;];<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;encode</span><span style="color: #000000">=</span><span style="color: #0000ff">function</span><span style="color: #000000">(str){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str</span><span style="color: #000000">=</span><span style="color: #000000">escape(str);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str</span><span style="color: #000000">=</span><span style="color: #000000">str.replace(</span><span style="color: #000000">/+/</span><span style="color: #000000">g,</span><span style="color: #000000">"</span><span style="color: #000000">%u002B</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;str;<br />
&nbsp;&nbsp;&nbsp;&nbsp;};<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;add(&nbsp;key,&nbsp;value&nbsp;){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s[&nbsp;s.length&nbsp;]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;encode(key)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;'</span><span style="color: #000000">=</span><span style="color: #000000">'&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;encode(value);<br />
&nbsp;&nbsp;&nbsp;&nbsp;};<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;If&nbsp;an&nbsp;array&nbsp;was&nbsp;passed&nbsp;in,&nbsp;assume&nbsp;that&nbsp;it&nbsp;is&nbsp;an&nbsp;array</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;of&nbsp;form&nbsp;elements</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(&nbsp;jQuery.isArray(a)&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;a.jquery&nbsp;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;Serialize&nbsp;the&nbsp;form&nbsp;elements</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jQuery.each(&nbsp;a,&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add(&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.name,&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.value&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;Otherwise,&nbsp;assume&nbsp;that&nbsp;it's&nbsp;an&nbsp;object&nbsp;of&nbsp;key/value&nbsp;pairs</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;Serialize&nbsp;the&nbsp;key/values</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;j&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;a&nbsp;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;If&nbsp;the&nbsp;value&nbsp;is&nbsp;an&nbsp;array&nbsp;then&nbsp;the&nbsp;key&nbsp;names&nbsp;need&nbsp;to&nbsp;be&nbsp;repeated</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(&nbsp;jQuery.isArray(a[j])&nbsp;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jQuery.each(&nbsp;a[j],&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">(){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add(&nbsp;j,&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add(&nbsp;j,&nbsp;jQuery.isFunction(a[j])&nbsp;</span><span style="color: #000000">?</span><span style="color: #000000">&nbsp;a[j]()&nbsp;:&nbsp;a[j]&nbsp;);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;Return&nbsp;the&nbsp;resulting&nbsp;serialization</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;s.join(</span><span style="color: #000000">"</span><span style="color: #000000">&amp;</span><span style="color: #000000">"</span><span style="color: #000000">).replace(</span><span style="color: #000000">/%</span><span style="color: #000000">20</span><span style="color: #000000">/</span><span style="color: #000000">g,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
}</span></div>
</pre>
<p>上面那段代码并不需要在jquery的源文件重写，可以在你项目的javascript贴上，覆盖它原有的方法，不过必须在jquery加载之后。</p>
<p>经初步验证，上面那段代码在utf-8编码也可以工作正常，大概是编码成unicode的缘故吧。</p>
<p>这样，就不是需要使用什么二次编码，即影响前台，又影响后台。gbk编码下ajax post不再是问题了，此乃是终极解决方法。哈哈。</p>
<p>有兴趣的可以到<a href="http://www.open-lib.com/Forum/Read_69_1.action" target="_blank" _mce_href="http://www.open-lib.com/Forum/Read_69_1.action">http://www.open-lib.com/Forum/Read_69_1.action</a>与作者交流。</p>
<img src ="http://www.blogjava.net/smildlzj/aggbug/335484.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/smildlzj/" target="_blank">smildlzj</a> 2010-10-18 20:08 <a href="http://www.blogjava.net/smildlzj/archive/2010/10/18/335484.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>探讨:OA系统的设计问题.</title><link>http://www.blogjava.net/smildlzj/archive/2009/08/13/290963.html</link><dc:creator>smildlzj</dc:creator><author>smildlzj</author><pubDate>Thu, 13 Aug 2009 03:21:00 GMT</pubDate><guid>http://www.blogjava.net/smildlzj/archive/2009/08/13/290963.html</guid><wfw:comment>http://www.blogjava.net/smildlzj/comments/290963.html</wfw:comment><comments>http://www.blogjava.net/smildlzj/archive/2009/08/13/290963.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/smildlzj/comments/commentRss/290963.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/smildlzj/services/trackbacks/290963.html</trackback:ping><description><![CDATA[<p>现我手头上有一个OA项目.<br />
<br />
有模块人事档案、管理员模块等。<br />
<br />
因为是工厂内部使用，所以人事档案大概是两种一群。厂工、办公室人员<br />
<br />
现上级要求为所有办公室人员增加&#8220;工作计划&#8221;的模块，我想做成这样日程表的效果<br />
<br />
看了一下。<br />
<a href="http://www.open-lib.com/Lib/410.jsp">dhtmlxScheduler</a>貌似这个效果比较好看。。<br />
<br />
</p>
<div class="Summary"><a href="http://www.open-lib.com/Lib/410.jsp"><img class="Logo" title="dhtmlxScheduler" alt="dhtmlxScheduler" src="http://www.open-lib.com/attachment/2009-8-10/16-34-14f.jpg" /></a>dhtmlxScheduler是一个JavaScript日程安排控件，类似于Google日历。日历事件通过Ajax动态加载，支持通过拖放功能调整事件日期和时间。事件可以按天，周，月三个种视图显示。</div>
<p><br />
现在说下我遇到的问题：<br />
<br />
由于已经有管理员模块。<br />
现在需要为所有办公室人员录入账号。<br />
<br />
方案一：是在人事档案中增加账号的字段。<br />
方案二：管理员表中增加关联人事档案的字段<br />
<br />
人事档案－人事文员可以使用。但是账号现是基于管理员表的。基于角色授权。<br />
<br />
如果按照方案一，那则需要允许人事人员有权管理账号、密码。<br />
按照方案二，人事文员的确接触不到账号、密码；但是需要二次录入对应的账号，还需要超级管理员设置的。<br />
似乎过于麻烦。<br />
<br />
不知道大家有何解决办法？原谅我发到首页。。<br />
<br />
</p>
<img src ="http://www.blogjava.net/smildlzj/aggbug/290963.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/smildlzj/" target="_blank">smildlzj</a> 2009-08-13 11:21 <a href="http://www.blogjava.net/smildlzj/archive/2009/08/13/290963.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>System Safety Monitor(SSM)破解方法</title><link>http://www.blogjava.net/smildlzj/archive/2008/09/19/229910.html</link><dc:creator>smildlzj</dc:creator><author>smildlzj</author><pubDate>Fri, 19 Sep 2008 04:55:00 GMT</pubDate><guid>http://www.blogjava.net/smildlzj/archive/2008/09/19/229910.html</guid><wfw:comment>http://www.blogjava.net/smildlzj/comments/229910.html</wfw:comment><comments>http://www.blogjava.net/smildlzj/archive/2008/09/19/229910.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/smildlzj/comments/commentRss/229910.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/smildlzj/services/trackbacks/229910.html</trackback:ping><description><![CDATA[进入正题，看过了很多关于SSM的帖子，今天经过近20次的重启，终于总结出了一个完美的解决方案！<br />
首先感谢Odin朋友的帖子<br />
我的想法是用注册表的权限设置锁住那个控制时间的键值，不就可以完美破解了吗！经过我今天一下午的试验，终于得出完美解决方案。<br />
一、首先是要找出那个控制时间的键值，方法是卸载原来的版本，重新安装SSM，那么安装日期就是今天的时期。打开Excel，将日期以yyyy-mm-dd的形式输入表格中，然后照图做：<br />
<img height="370" alt="" src="http://www.blogjava.net/images/blogjava_net/smildlzj/1.jpg" width="272" border="0" /><br />
<img height="464" alt="" src="http://www.blogjava.net/images/blogjava_net/smildlzj/2.jpg" width="679" border="0" /><br />
<img height="727" alt="" src="http://www.blogjava.net/images/blogjava_net/smildlzj/4.jpg" width="798" border="0" /><br />
<img height="126" alt="" src="http://www.blogjava.net/images/blogjava_net/smildlzj/3.jpg" width="109" border="0" /><br />
<br />
二、打开注册表编辑器，搜索转换出来的那个数字，这里是39073。那样就可以找到那个键值了。<br />
三、选中那个项，形如{&#8230;&#8230;}，点右键&#8594;权限&#8594;&#8230;&#8230;看图：<br />
<img height="454" alt="" src="http://www.blogjava.net/images/blogjava_net/smildlzj/5.jpg" width="537" border="0" /><br />
<img height="523" alt="" src="http://www.blogjava.net/images/blogjava_net/smildlzj/6.jpg" width="663" border="0" /><br />
<img height="493" alt="" src="http://www.blogjava.net/images/blogjava_net/smildlzj/7.jpg" width="510" border="0" /><br />
<img src ="http://www.blogjava.net/smildlzj/aggbug/229910.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/smildlzj/" target="_blank">smildlzj</a> 2008-09-19 12:55 <a href="http://www.blogjava.net/smildlzj/archive/2008/09/19/229910.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>向你形象的解释：什么叫ERP　</title><link>http://www.blogjava.net/smildlzj/archive/2007/11/20/161943.html</link><dc:creator>smildlzj</dc:creator><author>smildlzj</author><pubDate>Tue, 20 Nov 2007 13:44:00 GMT</pubDate><guid>http://www.blogjava.net/smildlzj/archive/2007/11/20/161943.html</guid><wfw:comment>http://www.blogjava.net/smildlzj/comments/161943.html</wfw:comment><comments>http://www.blogjava.net/smildlzj/archive/2007/11/20/161943.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/smildlzj/comments/commentRss/161943.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/smildlzj/services/trackbacks/161943.html</trackback:ping><description><![CDATA[<p>&nbsp; <font size="2">ERP(Enterprise Resource Planning)企业资源计划系统,是指建立在信息技术基础上,以系统化的管理思想,为企业决策层及员工提供决策运行手段的管理平台. <br />
一天中午,丈夫在外给家里打电话:"亲爱的老婆,晚上我想带几个同事回家吃饭可以吗 "(订货意向) <br />
妻子:"当然可以,来几个人,几点来,想吃什么菜 " <br />
丈夫:"6个人,我们7点左右回来,准备些酒,烤鸭,番茄炒蛋,凉菜,蛋花汤&#8230;&#8230;.你看可以吗 "(商务沟通) <br />
妻子:"没问题,我会准备好的."(订单确认) <br />
妻子记录下需要做的菜单(MPS计划),具体要准备的东西:鸭,酒,番茄,鸡蛋,调料&#8230;&#8230;(BOM物料清单),发现需要:1只鸭蛋,5瓶酒,4个鸡蛋&#8230;&#8230;(BOM展开),炒蛋需要6个鸡蛋,蛋花汤需要4个鸡蛋(共用物料). <br />
打开冰箱一看(库房),只剩下2个鸡蛋(缺料). <br />
来到自由市场,妻子:"请问鸡蛋怎么卖 "(采购询价) <br />
小贩:"1个1元,半打5元,1打9.5元." <br />
妻子:"我只需要8个,但这次买1打."(经济批量采购) <br />
妻子:"这有一个坏的,换一个."(验收,退料,换料) <br />
回到家中,准备洗采,切菜,炒菜&#8230;&#8230;(工艺线路),厨房中有燃气灶,微波炉,电饭煲&#8230;&#8230;(工作中心).妻子发现拨鸭毛最费时间(瓶颈工序,关键工艺路线),用微波炉自己做烤鸭可能来不及(产能不足),于是阅览室在楼下的餐厅里买现成的(产品委外). <br />
下午4点,电话铃又响:"妈妈,晚上几个同学想来家里吃饭,你帮忙准备一下."(紧急订单) <br />
"好的,你们想吃什么,爸爸晚上也有客人,你愿意和他们一起吃吗 " <br />
"菜你看着办吧,但一定要有番茄炒鸡蛋,我们不和大人一起吃,6:30左右回来."(不能并单处理) <br />
"好的,肯定让你们满意."(订单确定) <br />
鸡蛋又不购了,打电话叫小贬送来.(紧急采购) <br />
6:30,一切准备就绪,可烤鸭还没送来,急忙打电话询问:"我是李太,怎么订的烤鸭还不送来 "(采购委外单跟催) <br />
"不好意思,送货的人已经走了,可能是堵车吧,马上就会到的." <br />
门铃响了."李太太,这是您要的烤鸭.请在单上签一个字."(验收,入库,转应付账款) <br />
6:45,女儿的电话:"妈妈,我想现在带几个朋友回家吃饭可以吗 "(呵呵,又是紧急订购意向,要求现货) <br />
"不行呀,女儿,今天妈已经需要准备两桌饭了,时间实在是来不及,真的非常抱歉,下次早点说,一定给你们准备好."(哈哈,这就是ERP的使用局限,要有稳定的外部环境,要有一个起码的提前期) <br />
送走了所有客人,疲惫的妻子坐在沙发上对丈夫说:"亲爱的,现在咱们家请客的频率非常高,应该要买些厨房用品了(设备采购),最好能再雇个小保姆(连人力资源系统也有接口了). <br />
丈夫:"家里你做主,需要什么你就去办吧."(通过审核) <br />
妻子:"还有,最近家里花销太大,用你的私房钱来补贴一下,好吗 "(最后就是应收货款的催要) <br />
<br />
现在还有人不理解ERP吗 记住,每一个合格的家庭都是生产厂长的有力竞争者。<br />
<br />
摘自:http://blogger.org.cn/blog/more.asp?name=DMman&amp;id=24666</font></p>
<img src ="http://www.blogjava.net/smildlzj/aggbug/161943.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/smildlzj/" target="_blank">smildlzj</a> 2007-11-20 21:44 <a href="http://www.blogjava.net/smildlzj/archive/2007/11/20/161943.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>