base64 编码奇怪问题

ningmu 2004-10-22 09:48:39
各位好:
我在编写java 和javascript代码时遇到类下列问题:
代码如下:
//拼字符串
aa是字符串变量
bodydoc = "*****" + Base64.encodeString(aa) + "#####";
//写回jsp页面
out.print("<script language=\"javascript\">");
out.print("window.opener.thisform.doc_doc.value='" + bodydoc + "';");
out.print("window.close();");
out.print("</script>");
return;
在执行时出现脚本错误:“bodydoc” 是未结束的字符串。


请各位高手赐教,是不是拼字符串时出错。
...全文
183 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
皮鲁 2004-10-26
  • 打赏
  • 举报
回复
邮件默认就是以Base64编码二进制文件的
ChDw 2004-10-22
  • 打赏
  • 举报
回复
在默认的情况下面Base64.encodeString(aa)很有可能会存在回车字符的
你可能需要去掉这些回车
pigo 2004-10-22
  • 打赏
  • 举报
回复
在76个字符之后就是一个回车。
例如:
R0lGODlhhAD0AfcAANHs1+//8fL99Oz67O307dv02vT/7vf+99//6Pj99+Ts5PL58vL88vT6+OH5
5OH34Or56vz++9Hu2NTt2On/7uLz4fL/7/f9+PH18enx6fD+7u//77Hess/v2Or66vr8+sf41uXw
5bXhtvn6+P7+/fP/8czw0tXw0/r++e3x7fr+/eru6ub35dHx2PP78/n++tDm1PT+9PD/7+r06fb8
9fT79O/58M/m0vX39Oz/7+L+6Mvsy7rju/j59+//6uT04/P/6vT/7+j55+D23+L/6vP49PT/8vT/


用foxmail打开邮件查看到的原始信息就是这样的。

我上面说错了,是出现/r,/n之类的东西,会被认为是文件分隔符号。

<mail-attach >
<base64ed-name>0v3Tw3Byb3BlcnRpZXPXytS0zsS8/rXEanNwwP3X0yAudHh0</base64ed-name>
<attach-real-path>E:\\mailattachuploadtemp\10984359370930v3Tw3Byb3BlcnRpZXPXytS0zsS8-rXEanNwwP3X0yAu.txt</attach-real-path>
<attach-path>10984359370930v3Tw3Byb3BlcnRpZXPXytS0zsS8-rXEanNwwP3X0yAu.txt</attach-path>
<content-id></content-id>
<attach-name>引用properties资源文件的jsp例子 .txt</attach-name>
</mail-attach>




ChDw 2004-10-22
  • 打赏
  • 举报
回复
我不清楚你的Base64是什么类,我一般使用的sun.misc.BASE64Encoder是一定会在70多个字符的位置增加一个回车的。

在Base64编码的规范上面其实就是已经有说明存在回车的情况的
wuyue-tiger 2004-10-22
  • 打赏
  • 举报
回复
回车和\r\n都是不会有的,可能是其它原因造成的,把jsp执行好后的html源文件内容贴出来看看

pigo 2004-10-22
  • 打赏
  • 举报
回复

base64可能会产生 \r \n之类的东西,而这些通常会被一些语言作为转义字符。

发帖
Java

4.9w+

社区成员

Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
帖子事件
创建了帖子
2004-10-22 09:48
社区公告
暂无公告