假设我有一个包含 Base64 文本的 byte[]。
我想用这个文本结束创建一个字符串:
str = new String(text,"charset");
当我创建新字符串时,我如何确定我没有从原始文本中删除信息。
我的意思是我如何确定在执行新字符串(文本,“字符集”)时传递了正确的字符集。
如果原始编码是“cp-1255”并且我正在做 str = new String(text,"UTF-8") 我可能会破坏文本吗?
假设我有一个包含 Base64 文本的 byte[]。
我想用这个文本结束创建一个字符串:
str = new String(text,"charset");
当我创建新字符串时,我如何确定我没有从原始文本中删除信息。
我的意思是我如何确定在执行新字符串(文本,“字符集”)时传递了正确的字符集。
如果原始编码是“cp-1255”并且我正在做 str = new String(text,"UTF-8") 我可能会破坏文本吗?
首先,您需要使用解密/解码字节
BASE64Decoder decoder = new BASE64Decoder();
byte[] decodedBytes = decoder.decodeBuffer(encodedBytes);
然后你需要从字节中发现字符编码
我认为,您需要检查Java 中的编码转换
为了不破坏原始文本,您还需要以正确的编码读取输入。
您需要知道字符编码,这取决于 Base64 的来源。此外,您必须使用正确的编码,如果 Base64 不代表 UTF-8 中的二进制数据,那么使用 UTF-8 只会返回垃圾或抛出异常。
在这种情况下,您需要执行以下操作:
str = new String(bytes, "Windows-1255");
bytes
解码 base64 字符串产生的字节数组在哪里。