??xml version="1.0" encoding="utf-8" standalone="yes"?> 今年q头天气比较多变Q气温变化较大,因此每天早上看天气预报,然后告知x友,体ŞҎ(gu)意,每天机械式的重复Q有时候忘记可能会被PQ虽然没发生q忘记。?/span> 能不能采取自动化d代替q样的重复劳动呢Q?/span> q怺我们是强大的码农Q只怕没IDEAQ不怕做不到。。。。?/span> 其实原理很简单,是定时抓取指定城市的天气信息,然后l装成要的内容,发送邮件?/span> 不是说短信吗Q怎么变了邮g了? 大家别急,q里是利用几大运营商的免费的邮g到达提醒实现的,也就发送邮Ӟ当对Ҏ(gu)收到邮gQ自动发短信到手机,q且昄邮g部分内容?/span> 1、免贏V不限制订阅数量、支持一个Q务发送多人(大家ȝ点,别把服务器弄挂了Q;不支持时分秒定时d 2、支持订阅类型:今明两天的天气预报,股票信息Q基金信息,RSS?/span> CZQ?/span> 基金Q嘉实多元债券A[2011-08-01]最新净?1.071,昨日净?1.071,升幅:0.00%?/p>
明天天气预报Q东莞明天温度:东莞Q?4℃~26℃Q多云,微风(于3U?? 天气预警Q新疆维向ְ自治区吐鲁番地区气象台发布高温橙色预警?nbsp; Q需重新调整Q太抽象了;未开放)前言Q?/span>
原理Q?/span>
说说Q?/span>
股票Q[中牧股䆾]Q今日开盘h(hun):22.60,当前h:22.20,今日最高h(hun):22.60,今日最低h(hun):22.19?nbsp;
1、现在在弄个天气预警Q也是一旦天文台发布台风XX警报之类Q会很快的发到用L手机Q实现及时提醒,不过q部分还在测试当中,q没开放?/span>
2、支持短信上行、邮件回复、GTALKq程命oQ列表,停止Q启动之c)Q暂时也没对外开放,要试用的Q可以联pL。?/span>
支援Q?a >http://www.open-lib.com/Forum/Forum_13_1.action
前言:
当jquery ajax在utf-8~码下(面utfQ?Q接收utf-8Q,无Q何问题。可以正常post、getQ处理页面直接获取正的内容?/p>
但在以下情况?
GBK -> AJAX POST ->GBK
UTF-8 -> AJAX POST ->GBK
后台代码无法获取正确的内容,通常表现取到奇怪字W、问受?/p>
l典解决Ҏ(gu)Q?/span>
1Q发送页面、接攉面均采用UTF-8~码?/p>
2Q发送页面在调用ajax postҎ(gu)之前Q将含有中文内容的input用encodeURIComponent~码一ơ,而接攉面则调用解码Ҏ(gu)Q?如:java.net.urldecoder.decode("接收到内?,"utf-8") Q?/p>
其中Q第一U方法无疑是最单、最直接Q但往往不符合实际,因ؓ很多目q不是用utf-8~码Q例如国内大部分使用gbk~码Q也不可能ؓ了解册样一个问题,而将整个目转换为utf-8~码Q成本太大,风险太高?/p>
W二Ҏ(gu)Q是现在最多h使用的方法,俗称二次~码Qؓ什么叫二次~码Q等下会解释。客L~码两次Q服务端解码两次。但q种Ҏ(gu)不好的地方,是前台手动~码一ơ,后台再手动解码一ơ,E不留神׃忘记Q而且代码掺和前台逻辑?/p>
交互q程Q?/span>
当我们用表单按照传l方式post提交时候(非AJAX提交Q,览器会Ҏ(gu)当前面~码Qencode一ơ,然后发送到服务端,服务端接收到表单Q会自动dencode一ơ,通常q个q程是对E序是透明的,因此加上手动~码、解码,变成上面所说的二次~码?/p>
但当我们使用AJAX方式提交时候,览器ƈ不会自动替我们encodeQ因此在jquery中有q样的一D代码:
以上是jquery的ajaxҎ(gu)的代码片D,下面是正常调用jquery ajax post的代码:
$.ajax({
url: ajaxurl,
type: 'POST',
dataType: 'html',
timeout: 20000,//时旉讑֮
data:para,//参数讄
success: function(html){
}
});
通过上面代码可以知道Q当讄了data时候,jquery内部会调用jQuery.paramҎ(gu)对参数encodeQ执行本应浏览器处理的encodeQ?/p>
jQuery.param=function( a ) {
var s = [ ];
function add( key, value ){
s[ s.length ] = encodeURIComponent(key) + '=' + encodeURIComponent(value);
};
// If an array was passed in, assume that it is an array
// of form elements
if ( jQuery.isArray(a) || a.jquery )
// Serialize the form elements
jQuery.each( a, function(){
add( this.name, this.value );
});
// Otherwise, assume that it's an object of key/value pairs
else
// Serialize the key/values
for ( var j in a )
// If the value is an array then the key names need to be repeated
if ( jQuery.isArray(a[j]) )
jQuery.each( a[j], function(){
add( j, this );
});
else
add( j, jQuery.isFunction(a[j]) ? a[j]() : a[j] );
// Return the resulting serialization
return s.join("&").replace(/%20/g, "+");
}//jquery.param end
上面是jQuery.param的代码,l心点可以留意到encodeURIComponentq方法,q是javascript内置的方法,对目标字W串执行utf-8 encodeQ因此,当页面用gbk~码时候,服务端会使用gbkq行解码Q但实际提交的数据是以utf-8~码的,所以造成接收到内容ؓq或者ؓ问号?/p>
解决Ҏ(gu)Q?/span>
encodeURIComponent会以utf-8~码Q在gbk~码下,可不可以以gbkq行~码呢?
如果q在打encodeURIComponentL的话Q那不好意思,encodeURIComponent只会utf-8~码Qƈ没有其他apiq行其他~码Q不q,别担心,看看下面Q?/p>
encodeURIComponentQ它是将中文、韩文等Ҏ(gu)字符转换成utf-8格式的url~码?/p>
escape?-255以外的unicodeD行编码时输出%u****格式Q其它情况下escapeQencodeURIQencodeURIComponent~码l果相同?/p>
哈哈Q看到希望吧Q没错,是?span style="color: #ff0000" _mce_style="color: #ff0000;">escape代替encodeURIComponentҎ(gu)Q不q必L意:
escape不编码字W有69个:*Q?Q?Q?Q?Q@Q_Q?-9Qa-zQA-Z
encodeURIComponent不编码字W有71个:!Q?'Q?Q?Q?Q?Q?Q_Q~Q?-9Qa-zQA-Z
使用?span style="color: #ff0000" _mce_style="color: #ff0000;">escape之后必须对加可行编码,否则Q当内容含有加号时候会被服务端译为空根{?/p>
l于知道解决办法了,重写jquery代码Q?/p>
jQuery.param=function( a ) {
var s = [ ];
var encode=function(str){
str=escape(str);
str=str.replace(/+/g,"%u002B");
return str;
};
function add( key, value ){
s[ s.length ] = encode(key) + '=' + encode(value);
};
// If an array was passed in, assume that it is an array
// of form elements
if ( jQuery.isArray(a) || a.jquery )
// Serialize the form elements
jQuery.each( a, function(){
add( this.name, this.value );
});
// Otherwise, assume that it's an object of key/value pairs
else
// Serialize the key/values
for ( var j in a )
// If the value is an array then the key names need to be repeated
if ( jQuery.isArray(a[j]) )
jQuery.each( a[j], function(){
add( j, this );
});
else
add( j, jQuery.isFunction(a[j]) ? a[j]() : a[j] );
// Return the resulting serialization
return s.join("&").replace(/%20/g, "+");
}
上面那段代码q不需要在jquery的源文g重写Q可以在你项目的javascript贴上Q覆盖它原有的方法,不过必须在jquery加蝲之后?/p>
l初步验证,上面那段代码在utf-8~码也可以工作正常,大概是编码成unicode的缘故吧?/p>
q样Q就不是需要用什么二ơ编码,卛_响前収ͼ又媄响后台。gbk~码下ajax post不再是问题了Q此乃是l极解决Ҏ(gu)。哈哈?/p>
有兴的可以?a target="_blank" _mce_>http://www.open-lib.com/Forum/Read_69_1.action与作者交?/p>
现在说下我遇到的问题Q?br />
׃已经有管理员模块?br />
现在需要ؓ所有办公室人员录入账号?br />
Ҏ(gu)一Q是在h事档案中增加账号的字Dc?br />
Ҏ(gu)二:理员表中增加关联h事档案的字段
Z案Qh事文员可以用。但是̎L是基于管理员表的。基于角色授权?br />
如果按照Ҏ(gu)一Q那则需要允思h事h员有权管理̎受密码?br />
按照Ҏ(gu)二,Z文员的确接触不到账号、密码;但是需要二ơ录入对应的账号Q还需要超U管理员讄的?br />
gq于ȝ?br />
不知道大家有何解军_法?原谅我发到首c?br />