小编mcf*_*oft的帖子

GZIPInputStream 和字符集

我有一个包含拉丁文、西里尔文和汉字的文本。我尝试使用 GZIPInputStream压缩字符串(超过bytes[]GZIPOutputStream并解压缩它。但我无法将所有字符转换回原始字符。有些显示为?

我认为 UTF-16 可以完成这项工作。

有什么帮助吗?

问候

这是我的代码:

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.zip.DataFormatException;
import java.util.zip.Deflater;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
import java.util.zip.Inflater;
import java.util.zip.ZipException;

public class CompressUncompressStrings {

    public static void main(String[] args) throws UnsupportedEncodingException {

        String sTestString="äöüäöü ??";
        System.out.println(sTestString);
        byte bcompressed[]=compress(sTestString.getBytes("UTF-16"));
        //byte bcompressed[]=compress(sTestString.getBytes());
        String sDecompressed=decompress(bcompressed);
        System.out.println(sDecompressed);
    }
    public static byte[] compress(byte[] content){
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        try{
            GZIPOutputStream gzipOutputStream = new GZIPOutputStream(byteArrayOutputStream);
            gzipOutputStream.write(content);
            gzipOutputStream.close();
        } catch(IOException …
Run Code Online (Sandbox Code Playgroud)

java compression gzipinputstream

5
推荐指数
1
解决办法
2146
查看次数

标签 统计

compression ×1

gzipinputstream ×1

java ×1