假设我有一个包含Base64文本的byte []。
我想把这个文本结尾创建一个String:
str = new String(text,"charset");
当我创建新的字符串时,我怎么能确定我不会破坏它的错误 原文。
我的意思是我怎么能确定我在做新字符串时传递正确的字符集(文字," charset")。
如果原始编码为" cp-1255"我正在做str = new String(text," UTF-8")我可能会破坏文本吗?
答案 0 :(得分:1)
首先,您需要使用
解密/解码字节BASE64Decoder decoder = new BASE64Decoder();
byte[] decodedBytes = decoder.decodeBuffer(encodedBytes);
答案 1 :(得分:1)
我认为,您需要检查Encoding conversion in java
不要破坏原始文本,您还需要以正确的编码读取输入。
答案 2 :(得分:1)
您需要知道字符编码,这取决于Base64的起源。此外,您必须使用正确的编码,如果Base64不表示UTF-8中的二进制数据,那么使用UTF-8将只返回垃圾或抛出异常。
在这种情况下,您需要执行以下操作:
str = new String(bytes, "Windows-1255");
其中bytes
是解码base64字符串产生的字节数组。