0
XML 내에서 압축 된 문자열을 성공적으로 디코딩하려고합니다. 기본적으로 디코딩 된 문자열을 되돌리고 싶습니다. 때문에 유니티와 모노 나는 System.IO.Compression을 사용할 수 없습니다 (I가 일하고 있어요 ENV)의C# Decode base64 Ion.Zlib을 사용하는 Zlib 문자열
<data encoding="base64" compression="zlib">
eJztmNkKwjAQRaN9cAPrAq5Yq3Xf6vVIbQJjEZR+nDwQZScrwztoORECLySBcIgZ7nc2y4KfyWDLx+Jb9nViNgDEwY+KioAXUgQN4+zpoCMwPmQAtoAx2CLFbA2oDEo9+hwG8DnIDtF/2K8ks086Tw2zH0uyMv7HcRr/6/EvvhnsPrsrxwX7rwU/0ODig/eV3mh3N1ld8eraWPaX6+64s9McesfrqcHfg1MpoifxcVEWjukyw+9AtFPl/I71pER3Of6j4bv7HI54s+MChhqLlPdZ/P3qMmFuo5h5NnTOhjM5tReN2yT51n5/v7J3F0vi46fk+ne7aX0i9l6If7mpufTX3f5wsqv9TAD2fJLT9VrTn7UeZnM5tR+v0LMQOHXwFnxe2/warGFRWf8QDjOLfP
</data>
:
이
는 XML 내 압축 데이터 노드입니다. 그래서 Ionic.Zlib을 구현하고 있습니다. 내가 빈 문자열을 얻을 수 있기 때문에 출력으로 몇 가지 실수를하고 있어요 확인을 위해public static string DecodeBase64Gzip(string input)
{
byte[ ] ZlibBuffer = Convert.FromBase64String(input);
MemoryStream comp = new MemoryStream(ZlibBuffer);
Stream zlib = new Ionic.Zlib.ZlibStream (comp, Ionic.Zlib.CompressionMode.Decompress);
return new System.IO.StreamReader (zlib, System.Text.Encoding.UTF8).ReadToEnd();
}
:
이
는 구문입니다.public static string DecodeBase64Zlib(string input)
{
byte[ ] ZlibBuffer = Convert.FromBase64String(input);
return ZlibStream.UncompressString (ZlibBuffer);
}
그러나 같은 결과
(빈 문자열 ...)당신에게 몇 가지 조언 유무 :
나는 그런 식으로도 tryied? 미리 감사드립니다!
안녕하세요. tmx (xml!) 파일은 다음과 같은 규칙에 따라 다른 소프트웨어에서 압축됩니다. https://github.com/bjorn/tiled/wiki/TMX-Map-Format#data 압축이 zlib와 인코딩은 base64입니다. 헤더 나 다른 예외는 없습니다. – Boxbuilder
나는 어떻게 그런지 모르지만 당신이 제공 한 데이터는 묘사 된 것이 아니다. zlib 스트림이 손상되어 base64 문자열이 완료되지 않았습니다. 데이터를 올바르게 추출했는지, 그리고 잘라내어 질문에 붙여 넣기에 오류가 없는지 확인해야합니다. –