获得正确的编码

时间:2013-02-05 08:33:43

标签: java encoding character-encoding

假设我有一个包含Base64文本的byte []。

我想把这个文本结尾创建一个String:

 str = new String(text,"charset");

当我创建新的字符串时,我怎么能确定我不会破坏它的错误 原文。

我的意思是我怎么能确定我在做新字符串时传递正确的字符集(文字," charset")。

如果原始编码为" cp-1255"我正在做str = new String(text," UTF-8")我可能会破坏文本吗?

3 个答案:

答案 0 :(得分:1)

首先,您需要使用

解密/解码字节
BASE64Decoder decoder = new BASE64Decoder();
byte[] decodedBytes = decoder.decodeBuffer(encodedBytes);

然后你需要Discover character Encoding from Bytes

答案 1 :(得分:1)

我认为,您需要检查Encoding conversion in java

不要破坏原始文本,您还需要以正确的编码读取输入。

答案 2 :(得分:1)

您需要知道字符编码,这取决于Base64的起源。此外,您必须使用正确的编码,如果Base64不表示UTF-8中的二进制数据,那么使用UTF-8将只返回垃圾或抛出异常。

在这种情况下,您需要执行以下操作:

str = new String(bytes, "Windows-1255");

其中bytes是解码base64字符串产生的字节数组。