背景:将IOS生成的base64串封装在JSON里提交到Java后台,发现JSON解析始终报错。
究其原因,发现IOS提交上来的base64字符串里面含有大量的\r\n。
这些回车换行符是base64算法放进去的。
原因:
利用base64算法将图片变成base64字符串后,将此字符串打印出来后,发现这个大字符串分多条小字符串打印,说明每行末尾有回车换行符。
进一步解析的话,利用debug语句,将会清晰的看到\r\n字符。
到这一步,我们的解决方案已经非常清晰。
解决方法:
将base64生成的字符串里面的\r\n替换成""即可。
s = s.replaceAll("\r\n", "");
OK,大功告成。
refurl:http://stackoverflow.com/questions/3056834/replace-n-and-r-n-with-br-in-java
http://blog.csdn.net/y13530828499/article/details/6718206
http://zhidao.baidu.com/question/547808753.html
http://www.tuicool.com/articles/6Z7B32u 也是base64引起的麻烦。
相关推荐
Java 8引入的新特性之一是内置的Base64编解码API,这使得在Java程序中处理Base64编码变得更加方便且高效。Base64是一种常见的字符编码方式,主要用于将非ASCII字符的数据转换为ASCII字符,确保数据在只能传输ASCII...
return preg_replace('/[^\r\n]{73}[^=\r\n]{2}/', "$0=\r\n", str_replace("%", "=", rawurlencode($string))); } ``` 这个函数首先对字符串进行urlencode转换,然后将所有的“%”字符替换为“=”号。随后,如果...
全局替换 /home/oracle/netca.rsp 内容改为: [GENERAL] RESPONSEFILE_VERSION="12.1" CREATE_TYPE="CUSTOM" [oracle.net.ca] INSTALLED_COMPONENTS={"server","net8","javavm"} INSTALL_TYPE="custom" LISTENER_...
默认情况下,`setLatestEventInfo()`会使用系统的默认布局`R.layout.notification_template_base`,并且在其中设置图标、标题和内容。如果想自定义图标,我们需要在创建`Notification`对象时传入自定义的图标ID,就...
R:\wyb\ap6212a0_a33_sc3817r\android\device\softwinner\astar-y3\overlay\frameworks\base\core\res\res\values\config.xml <!-- List of regexpressions describing the interface (if any) that represent ...
R:\wyb\ap6212a0_a33_sc3817r\android\device\softwinner\astar-y3\overlay\frameworks\base\core\res\res\values\config.xml <!-- List of regexpressions describing the interface (if any) that represent ...
只要满足L,i<R就一直执行上面的操作 优化思路 随机选取基准值base(支点随机选取) 配合着使用插入排序(当问题规模较小时,近乎有序时,插入排序表现的很好) 当大量数据,且重复数...
说明:当localUrlTest测试为false时,会将图片URL发往当前参数指定的服务器端上传接收程序,抓取成功后将本地URL返回并替换 备注:v1.1.8新添加 readTip:无障碍读屏提示 参数值:字符串(默认为空) 说明:无障碍读屏...
这是一个典型的分支控制指令,该指令的作用完全类似于Java语言中的if,if指令的语法格式如下: <#if condition>... <#elseif condition>... <#elseif condition>... <#else> ... 例子如下: (age>60)>老年人 ...
SQL(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。同时也是数据库脚本文件的扩展名。 SQL语言主要包含5个部分 数据定义...
文将对 Linux™ 程序员可以使用的内存管理技术进行概述,虽然关注的重点是 C 语言,但同样也适用于其他语言。文中将为您提供如何管理内存的细节,然后将进一步展示如何手工管理内存,如何使用引用计数或者内存池来半...