Extjs 无法decode 带有 \n 的字符串

简介:

我们上次偶然发现了一个问题,我们在一个庞大的项目中,然后按照 spring web flow 走下去,最后一步提交,提交成功,但是回到某个页面上的时候,总是报错,说某个变量 比如var projectInfo,这个变量为null。


后来我们仔细看了下代码,原来是因为这个页面上有个字段是textarea,然后它会支持多行输入,多行也就是\n,然后在extjs看来,它无法对于一个包含\n的字符串进行decode,所以decode的结果就是null


我们实验如下:


(1)Ext.decode一个包含\n的字符串:

这里可以看出decode会失败。


(2)Ext.decode一个不包含\n或者包含吧所有\n都转为\\n之后的字符串:

这里看出decode会成功。


基于这个思路我们就找到正确的解决方法了,我们只需要吧所有'\n'替换成'\\n'就可以了,为此在js代码中:

原来是:

1
var  projectInfo = Ext.decode(decodeURIComponent( '${projectInfoJSONData}' , true );


现在改成:

1
var  projectInfo = Ext.decode(decodeURIComponent( '${projectInfoJSONData}' ).replace(/\n/g, '\\n' ), true );




本文转自 charles_wang888 51CTO博客,原文链接:http://blog.51cto.com/supercharles888/1222093,如需转载请自行联系原作者
目录
相关文章
|
8月前
|
JavaScript 前端开发 数据安全/隐私保护
JavaScript学习 -- Hex编码
JavaScript学习 -- Hex编码
253 0
|
8月前
都是编码函数escape、encodeURI、encodeURIComponent有啥区别?
都是编码函数escape、encodeURI、encodeURIComponent有啥区别?
|
8月前
|
安全 JavaScript 前端开发
escape, encodeURI, encodeURIComponent 有什么区别以及作用?
escape, encodeURI, encodeURIComponent 有什么区别以及作用?
342 0
|
JavaScript 前端开发 Python
Python 技术篇 - 使用unicode_escape对js的escape()方法编码后的字符串进行解码实例演示
Python 技术篇 - 使用unicode_escape对js的escape()方法编码后的字符串进行解码实例演示
251 0
Python 技术篇 - 使用unicode_escape对js的escape()方法编码后的字符串进行解码实例演示
|
编解码 算法 数据挖掘
成功解决Python中导出图片出现错误SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position
成功解决Python中导出图片出现错误SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position
成功解决Python中导出图片出现错误SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position
|
Python
Python编码介绍——encode和decode
在 python 源代码文件中,如果你有用到非ASCII字符,则需要在文件头部进行字符编码的声明,声明如下: # code: UTF-8 因为python 只检查 #、coding 和编码字符串,所以你可能回见到下面的声明方式,这是有些人为了美观等原因才这样写的: #-*- cod...
953 0