菜鸟求助
服务器端C# gzip压缩字符串又base64编码,代码如下
/**/
/// <summary>
/// 从原始字符串生成已压缩的字符串。
/// </summary>
/// <param name="stringToCompress">原始字符串。</param>
/// <returns>返回已压缩的字符串。</returns>
public static string Compress(string stringToCompress)
{
byte[] compressedData = CompressToByte(stringToCompress);
string strOut = Convert.ToBase64String(compressedData);
return strOut;
}
/**/
/// <summary>
/// 从原始字符串生成已压缩的字节数组。
/// </summary>
/// <param name="stringToCompress">原始字符串。</param>
/// <returns>返回已压缩的字节数组。</returns>
public static byte[] CompressToByte(string stringToCompress)
{
byte[] bytData = Encoding.Unicode.GetBytes(stringToCompress);
return Compress(bytData);
}
我客户端gzip解压时,中文会有乱码,每一个英文字符后边都有一个空格。求助什么问题?全角半角?java代码如下
private String uncompress(String str) throws IOException {
if (str == null || str.length() == 0) {
return str;
}
ByteArrayOutputStream out = new ByteArrayOutputStream();
ByteArrayInputStream in = new ByteArrayInputStream(Base64.decode(str.trim()));
GZIPInputStream gunzip = new GZIPInputStream(in);
byte[] buffer = new byte[4096];
int n;
while ((n = gunzip.read(buffer)) >= 0) {
out.write(buffer, 0, n);
}
return out.toString("UTF-8");
}