Base64 문자열이 있습니다. 해독하려고 시도하고 압축을 푸십시오. 내가 압축 해제에 사용하고Base64 문자열을 변환 할 수없고 올바르게 풀릴 수 없습니다.
String textToDecode = "H4sIAAAAAAAAAAEgAN//0JTQtdGC0LDQu9C40LfQuNGA0L7QstCw0L3QvdGL0LmRCuyiIAAAAA==\n";
byte[] data = Base64.decode(textToDecode, Base64.DEFAULT);
String result = GzipUtil.decompress(data);
코드 :
public static String decompress(byte[] compressed) throws IOException {
final int BUFFER_SIZE = 32;
ByteArrayInputStream is = new ByteArrayInputStream(compressed);
GZIPInputStream gis = new GZIPInputStream(is, BUFFER_SIZE);
StringBuilder string = new StringBuilder();
byte[] data = new byte[BUFFER_SIZE];
int bytesRead;
while ((bytesRead = gis.read(data)) != -1) {
string.append(new String(data, 0, bytesRead));
}
gis.close();
is.close();
return string.toString();
}
내가이 String 얻어야한다 : 그것의
Детализированный
Insteam을, 나는 물음표 기호이 문자열을 얻고있다 :
화 내 실수 야? 어떻게 해결할 수 있을까요?
"UTF-8"로 인코딩되었음을 확인했습니다. 당신의 제안에 따라, 나는이'string.append (new String (data, 0, bytesRead, "UTF-8"));를 시도했다. –
압축/base64 전과 base64/압축 해제 후 바이트의 바이트 별 비교를 제안합니다. 길이도. 또한 개행이 있어야하는지 스스로에게 물어보십시오. –