Base64编码中的Java特殊字符

时间:2015-10-28 11:26:45

标签: java character-encoding base64

我试图在我的Java程序中使用basic64编码。

问题是当我使用

new sun.misc.BASE64Encoder().encode("my string".getBytes())

我收到了带有\ n和\ r \ n的base 64字符串。我不知道如何避免这种情况,因为当我在文本文件中写下该字符串时,我得到以下内容

xxxxxxxxxxxxxxxx
yyyy

其中下一行由\ n和\ r。

生成

我尝试使用替换(" \ n"," \ n")和\ r \ n相同但我想知道是否有更好的解决方案或额外的参数我可以使用Base64编码(甚至其他编码方式。)

我改变了库,它正在运行!

这是差异

阿帕奇 Q0FTSCNTVUJJUiMzNWYwMjFiMC1kZWRjLTRmZjgtYjNjMS0wZDY0NmVkMjFmOGUjMjAzMzU1MzczMzY =

太阳 FWmsMAID7Ecbf8gUd0WIvKBjJNXhtMCbcKVDW0R4KXY / e1Do8lItqDN4NH / RiBdckoIMeFrncJ5X Fju7R0cX822I / lFSkLab

很奇怪......我认为Base64是一个标准...

1 个答案:

答案 0 :(得分:1)

here

  

sun。*包不是受支持的公共界面的一部分。一个   直接调用sun。*包的Java程序无法保证   在所有兼容Java的平台上工作。实际上,这样的程序是   即使在同一平台上的未来版本中也不能保证工作。

考虑Why Developers Should Not Write Programs That Call 'sun' Packages

  

可能是这样的:

     

import org.apache.commons.codec.binary.Base64;