关于作者

用户名:heiying
笔名:GodJeal
地区: 贵州-贵阳
行业:其他

日历  

快速登录

+ 用户名:
+ 密 码:

在线留言



信息安全

投资

访问统计:
文章个数:104
评论个数:19
留言条数:2




Powered by BlogDriver 2.1

天涯沦落心

 

人生无所谓永恒,我只相信现在,未来怎样,我不知道,过去我已无法改变,我只想把握住现在,真心对待每一天,努力奋斗每一天。如果愿意和本人一起探讨人生和技术请联系:QQ:89727175 .

文章

奇怪的回车换行问题

一直对回车换行问题没有怎么注意,只知道,在windows中,回车换行是\r\n (0x0D,0x0A)。在类unix中,是\n (0x0A)。以为没有什么大的问题,没想到,这次开发一个小程序,却让我对这个问题大为头痛。

首先发现这个问题是这样的:

我的这个程序采用的是Extjs+php的方式,通过ajax进行通讯。其中有个页面,如图:

两个文本框,一个text,一个textarea,当textarea中含有回车换行的时候,会出现脚本错误。后面发现是因为如果服务器端返回的字符串换行了,会造成js解析出现错误,可见js在解析json数据时候的语法还是和在本地定义的字符串变量的语法一致的。一个字符串不能多行,有回车换行的时候需要转义符号:\n \r\n)。

不过这个并不是我要说明的问题,我要说明的问题是,当我在解决这个问题的时候,抓包分析的时候,发现一个有趣的现象,就是发现浏览器发送到服务器对回车换行的编码不一致。

例如上图中的字符串在通过extjs中的Ext.Ajax.request({

                  url:'CatMan.php',

                  form:this.FORM_NAME,

                  scope:this,

                  callback:function(o,s,r){

                     var retObj=Ext.decode(r.responseText);

                     if(retObj.success){

                         alert('保存成功!');

                     }

                  }

              });

进行保存时候,发现发送到服务器的编码是这样的:

catdesc=%E6%9E%97%0A%0A%E5%B0%910A%0A%0Aa%E5%8D%8E

注意其中的红色标记的%0A,这是\n的编码。\r的编码竟然不见了。

然后我如果采用form submit直接提交,却发现编码是:

%E6%9E%97%0D%0A%0D%0A%E5%B0%91%0D%0A%0D%0A%0D%0Aa%E5%8D%8E

发现\r(%0D)的编码是在的。

(以上为在IE9中测试结果。)

难道是ExtJs的问题?

如果分析Extjs的源代码,找到取form值得地方。如下:

serializeForm : function(form) {

        debugger

            var fElements = form.elements || (document.forms[form] || Ext.getDom(form)).elements,

                hasSubmit = false,

                encoder = encodeURIComponent,

                name,

                data = '',

                type,

                hasValue;

   

            Ext.each(fElements, function(element){

                name = element.name;

                type = element.type;

       

                if (!element.disabled && name) {

                    if (/select-(one|multiple)/i.test(type)) {

                        Ext.each(element.options, function(opt){

                            if (opt.selected) {

                                hasValue = opt.hasAttribute ? opt.hasAttribute('value') : opt.getAttributeNode('value').specified;

                                data += String.format("{0}={1}&", encoder(name), encoder(hasValue ? opt.value : opt.text));

                            }

                        });

                    } else if (!(/file|undefined|reset|button/i.test(type))) {

                        if (!(/radio|checkbox/i.test(type) && !element.checked) && !(type == 'submit' && hasSubmit)) {

                            data += encoder(name) + '=' + encoder(element.value) + '&';

                            hasSubmit = /submit/i.test(type);

                        }

                    }

                }

            });

            return data.substr(0, data.length - 1);

        },

可以发现extjs采用的是js中的encodeURIComponent函数进行值的编码。

难道是encodeURIComponent的问题?

搜索网络,发现一篇博文中提到这个问题,见http://www.yeahxj.com/2011/11/07/enter-code-for-all-browser/  (回车符 \r\n 在各个浏览器中无耻的表现)

于是我在ie6,ie8,ie9中分别进行了测试,发现果然存在这个问题。

总结:

这个问题虽然小,但是在某些场合却会让人和头痛,这也是搞计算机程序设计人员的悲哀,大量的不兼容,造成很多程序出现各种各样奇怪的问题。例如这个小问题可能造成一个结果,例如,我这个程序,需要在前台显示内容的时候保留回车换行。这种一般有两种处理方法,一种是采用标签,但是这个标签用起来很不方便的,尝试发现格式变化不太好控制。另外一种方法就是将回车换行变为
标记。我就是采用的这种方法,刚开始我写的正规表达式是/\r\n/,结果发现什么都没匹配到,后面我就改成/[\r\n]/但是这种造成的问题就是在ie6,7,8中将会多出一行来。最后为了统一处理,我改为先替换/\r\n/组合,然后再替换/\n/。问题得到解决。

/*****************************************************************/
/**  本人原创文章,转摘请保留本段内容,万分感谢!
/**  microdreamsoft(Lin Shaohua):
/**  由于本人水平有限,欢迎各位高手指正。
/**  本人所有原创文章将发布在以下blog:
/**   http://blog.csdn.net/hydream
/**   http://websoso.bokee.com
/**   http://89727175.qzone.qq.com
/**   http://hi.baidu.com/microdreamsoft
/*****************************************************************/

 

 

- 作者: GodJeal 2011年11月23日, 星期三 15:50  回复(0) |  引用(0) 加入博采

iframe自适应高度[LinShaohua原创]
摘要:在设计新闻浏览网站的时候,有个需求就是将内容显示在嵌套的iframe中。可是有个问题就是,当内容过长时候,会出现iframe有竖直滚动条,ie也有竖直滚动条的问题,这样就造成了用户要拖动内外滚动条的问题。十分不便,刚开始的解决方法是将iframe的height设置的非常大,这样就只有一个滚动条了,可是这样就会造成ie的滚动条非常小,当iframe中内容特别长时,也是这样,还是不爽! 查看全文

- 作者: GodJeal 2007年11月2日, 星期五 09:52  回复(0) |  引用(1) 加入博采

Windows 资源管理器的“缩略图”不显示的解决方法
摘要:Windows资源管理器可以用“缩略图”方式预览小图片,这样非常方便我们在资源管理器里直接看到图片的内容,而无须使用专用的图片查看程序。 但有时候,这种“缩略图”方式会莫名其妙地不能显示了。很多用户在安装了acdsee这个软件后会碰到上述情况,如果acdsee的安装过程不顺利,导致两次以上的安装,这样就可能因为安装过程在更改注册表时发生紊乱,更容易引起这个问题。 解决这个问题的方法是使用后面提供的一个vbs脚本程序。这个vbs脚本程序专门修改与“缩略图”浏览方式相关的注册表项,从而恢复“缩略图”浏览功能。 查看全文

- 作者: GodJeal 2007年11月1日, 星期四 12:10  回复(3) |  引用(1) 加入博采

英语词汇的来源
摘要:http://www.childeye.com/english/viewthread.php?tid=943 查看全文

- 作者: GodJeal 2007年07月31日, 星期二 16:06  回复(0) |  引用(2) 加入博采

结婚前后,经典

结婚前:他:万岁!终于到来了!我都等不及了!

她:我可以离开吗?

他:不,你甚至想都别想!她:你爱我吗?

他:当然!

她:你会背叛我吗?

他:不会,你怎么会有这样想法?

她:你会吻我吗?

他:会的她:你会打我吗?

他:无论如何都不

她:我能相信你吗?

结婚后从下往上看

- 作者: GodJeal 2007年06月15日, 星期五 10:22  回复(0) |  引用(2) 加入博采

[转]误导女人的七句话
摘要:爱无能是现代社会的流行病,如果你能真心爱上一个人,真实地在为爱受苦,那么,恭喜你,你的身心是健全的,你的痛苦还不是满世界无人可爱的绝望。被不被爱是无法强求的,但首先,拥有爱的能力就是值得祝福的。 查看全文

- 作者: GodJeal 2007年06月8日, 星期五 09:42  回复(0) |  引用(2) 加入博采

考验爱情的是生活
摘要:爱一个人,也许可以为其生死,但是却经不起生活的折腾。 考验爱情的不是生死,而是生活。 查看全文

- 作者: GodJeal 2007年06月3日, 星期日 15:09  回复(0) |  引用(2) 加入博采

什么是爱情和婚姻

有一天,柏拉图问老师苏格拉底什么是爱情?老师就让他先到到麦田里去,摘一棵全麦田里最大最金黄的麦穗来,期间只能摘一次,并且只可向前走,不能回头。       柏拉图于是按照老师说的去做了。结果他两手空空的走出了田地。老师问他为什么摘不到?       他说:因为只能摘一次,又不能走回头路,期间即使见到最大最金黄的,因为不知前面是否有更好的,所以没有摘;走到前面时,又发决总不及之前见到的好,原来最大最金黄的麦穗早已错过了;于是我什么也没摘。       老师说:这就是“爱情”。       之后又有一天,柏拉图问他的老师什么是婚姻,他的老师就叫他先到树林里,砍下一棵全树林最大最茂盛、最适合放在家作圣诞树的树。其间同样只能砍一次,以及同样只可以向前走,不能回头。       柏拉图于是照着老师的说话做。今次,他带了一棵普普通通,不是很茂盛,亦不算太差的树回来。老师问他,怎么带这棵普普通通的树回来,他说:“有了上一次经验,当我走到大半路程还两手空空时,看到这棵树也不太差,便砍下来,免得错过了后,最后又什么也带不出来。”       老师说:“这就是婚姻!”       人生就正如穿越麦田和树林,只走一次,不能回头。要找到属于自己最好的麦穗和大树,你必须要有莫大的勇气和付出相当的努力才可以。

- 作者: GodJeal 2007年05月27日, 星期日 17:11  回复(0) |  引用(2) 加入博采

股票技术分析揭秘
摘要:这是一篇旧作,写于1年多前,因为文中那个可笑的错误预测,一直以来连我自己都不屑再顾,这篇文章在网络上也早已沉入水底,难再寻觅。昨日细读,感觉自己当时的心态是平和的,文中的观点也依然是新颖的,今日特将完整原文重新发表。关于技术分析,我还有一篇陋作《如如我心对江恩理论的深度剖析》。 股票技术分析揭秘 查看全文

- 作者: GodJeal 2007年04月21日, 星期六 23:08  回复(0) |  引用(2) 加入博采

谁是杰西·利文摩尔? (转载)
摘要:杰西·罗利斯通·利文摩尔(Jesse Lauriston Livermore)是20世纪最著名的操盘手之一。很少有人能够像利文摩尔那样迅速地集聚财富又迅速地失去财富。 查看全文

- 作者: GodJeal 2007年04月21日, 星期六 22:50  回复(0) |  引用(2) 加入博采

K线图分析法简介
摘要:K线图这种图表源处于日本,被当时日本米市的商人用来记录米市的行情与价格波动,后因其细腻独到的标画方式而被引入到股市及期货市场。目前,这种图表分析法在我国以至整个东南亚地区均尤为流行。由于用这种方法绘制出来的图表形状颇似一根根蜡烛,加上这些蜡烛有黑白之分,因而也叫阴阳线图表。通过K线图,我们能够把每日或某一周期的市况表现完全记录下来, 股价经过一段时间的盘档后,在图上即形成一种特殊区域或形态,不同的形态显示出不同意义。我们可以从这些形态的变化中摸索出一些有规律的东西出来。K线图形态可分为反转形态、整理形态及缺口和趋向线等,从本章的第三节开始,我们将逐一地对这些形态进行具体分析。 查看全文

- 作者: GodJeal 2007年04月21日, 星期六 20:22  回复(0) |  引用(2) 加入博采

股票K线图:分析技巧
摘要:K线理论发源于日本,是最古老的技术分析方法,1750年日本人就开始利用阴阳烛来分析大米期货。K线具有东方人所擅长的形象思维特点,没有西方用演绎法得出的技术指标那样定量,因此运用上还是主观意识占上风。面对形形色色的K线组合,初学者不禁有些为难,其实浓缩就是精华,就如李小龙把招式从复杂化为简单反能一招制敌,笔者也把浩瀚的K线大法归纳为简单的三招,即一看阴阳,二看实体大小,三看影线长短。 查看全文

- 作者: GodJeal 2007年04月21日, 星期六 20:05  回复(0) |  引用(2) 加入博采

在代码中动态创建控件无法保存状态的问题
摘要:在网上找了点资料,算是明白了,这是我觉得有帮助的文章: 查看全文

- 作者: GodJeal 2007年04月4日, 星期三 12:36  回复(0) |  引用(2) 加入博采

errorsafe流氓软件清除
摘要:操流氓软件她奶奶的,花了老子一个晚上的宝贵时间,终于把errorsafe这个大流氓给干掉了! 我尻 cn.errorsafe.com www.errorsafe.com 查看全文

- 作者: GodJeal 2007年03月21日, 星期三 23:11  回复(3) |  引用(2) 加入博采

“实尾岛”事件
摘要:这个岛上,没有人类,只有国家训练出的杀人机器 查看全文

- 作者: GodJeal 2007年03月8日, 星期四 21:18  回复(0) |  引用(2) 加入博采

农村人与城里人的经典对话!!
摘要:农村人与城里人的经典对话!! 我是一个城里人 我是一个农村人 我出生了 我也出生了 我是一个城里人——我出生在医院 我是一个农村人——我出生在炕上 查看全文

- 作者: GodJeal 2007年03月4日, 星期日 13:02  回复(0) |  引用(2) 加入博采

回光返照
摘要:回光返照原为佛教、道教用语。我国民间引申其义,将临死时忽然稍微精神振作者称为回光返照。 查看全文

- 作者: GodJeal 2007年03月3日, 星期六 15:25  回复(0) |  引用(2) 加入博采

日本人眼中的本国著名情色电影
摘要:日本文学传统里,认为生命最美的时候是菊花凋落的一瞬间。短暂、奇艳、死亡的意味搀杂在一起。这样的民族审美在文学和艺术中必然倾向了虐恋、宿命和唯美。这在日本情色电影里也是体现的颇为极致。也许和日本是个狭窄的岛国有关,资源贫乏生存不易,让日本人总觉得美好的事物是容易消逝的。这样的不自信和危机感引申出了虐恋、宿命的观念,并深深的植入这个民族的内心。最经典的古典小说《源氏物语》就是如此。也曾有人考证中国的《红楼梦》就是受了该书的影响写作的。 查看全文

- 作者: GodJeal 2007年02月25日, 星期日 20:41  回复(0) |  引用(2) 加入博采

ASP.NET 2.0服务器控件与form runat=server标记
摘要:讨论ASP.NET 2.0服务器控件与form runat=server标记之间的关系,为什么要把服务器控件放在form runat=server中呢? 查看全文

- 作者: heiying 2007年02月4日, 星期日 17:55  回复(0) |  引用(2) 加入博采

远程桌面“中断”巧解决__远程计算机已结束连接
摘要:【IT168 专稿】windows系统的远程桌面一直是企业网络管理员的得力助手,很多网络管理员通过远程桌面管理服务器和有特殊角色的员工计算机。远程桌面的使用非常简单,通过远程桌面连接程序访问目标计算机,输入用户名和密码后登录成功后就和使用自己的计算机一模一样了。不过最近笔者在对一台XP系统计算机进行管理时,却出现了无法正常连接的问题。最后通过查询资料解决了此问题,在此写出来给各位IT168的读者,希望大家在遇到同样问题时能够快速解决。 查看全文

- 作者: heiying 2007年01月19日, 星期五 21:58  回复(0) |  引用(2) 加入博采