您好,匿名用户
随意问技术百科期待您的加入

Base64编码密钥时关于换行的几个问题。

+1 投票

在windows下一个javaweb应用,需要用http传递公钥pk。
一般是
String pk = BASE64ENCODER.encode(pkBytes);
base64编码时,每76个字母就要换行。
那么pk就应该是

PHBrZD5NSUlCcGpDQ0FSc0dDU3FHU0liM0RRRURBVENDQVF3Q2dZRUEvWDlUZ1IxMUVpbFMzMHFj
THV6azUvWVJ0MUk4NzBRQXd4NC9nTFpSDQpKbWxGWFVBaVVmdFpQWTFZK3IvRjlib3c5c3ViVld6
4dnFoUmtJbW9

这样的吧

如果我直接在jsp文件输出这个<%=pk%>或者写到xml中,没啥问题。
后来我改成用Spring的MarshallingHttpMessageConverter,注入org.springframework.oxm.castor.CastorMarshaller
然后就变成了

PHBrZD5NSUlCcGpDQ0FSc0dDU3FHU0liM0RRRURBVENDQVF3Q2dZRUEvWDlUZ1IxMUVpbFMzMHFj
THV6azUvWVJ0MUk4NzBRQXd4NC9nTFpSDQpKbWxGWFVBaVVmdFpQWTFZK3IvRjlib3c5c3ViVld6
4dnFoUmtJbW9

注意最后是
在unmarshall的时候就把换行给换成了空格。

PHBrZD5NSUlCcGpDQ0FSc0dDU3FHU0liM0RRRURBVENDQVF3Q2dZRUEvWDlUZ1IxMUVpbFMzMHF THV6azUvWVJ0MUk4NzBRQXd4NC9nTFpSDQpKbWxGWFVBaVVmdFpQWTFZK3IvRjlib3c5c3ViVld6 4dnFoUmtJbW9

那么pk就变了。

以上算是个背景。

问题:
1.base64编码(sun.misc.BASE64Encoder)编出来的换行都是\r\n么? 还是说因为我是winodws系统所以是\r\n?

2.

public static void main(String[] args) {
String a="abcd\nefgh\rjkl\r\nmndf";
System.out.println(a);
}

悲催的表示\n,\r,\r\n都可以换一行,这肿么办。 \n\r是换两行。
一般对于换行的情况都是怎么解决的?

用户头像 提问 2012年 12月1日 @ Ezreal 上等兵 (266 威望)
分享到:

1个回答

0 投票

这个应该是你文本编辑器的原因,不同的文本编辑器,所用的换行符号有差别的
\n 换行
\r 回车

用户头像 回复 2012年 12月1日 @ Annie 上等兵 (299 威望)
提一个问题:

相关问题

0 投票
1 回复 37 阅读
用户头像 提问 2012年 12月1日 @ Rumble 上等兵 (394 威望)
0 投票
1 回复 34 阅读
用户头像 提问 2012年 12月1日 @ 卫宫士郎 上等兵 (173 威望)
0 投票
1 回复 53 阅读
用户头像 提问 2012年 12月1日 @ Fiora 上等兵 (297 威望)
0 投票
1 回复 32 阅读
用户头像 提问 2012年 12月1日 @ Kassadin 上等兵 (255 威望)
0 投票
1 回复 60 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...