Here is the data source, encoded by ISO-8859-1
:
"x%DAe%91%C1%92%9B0%0C%86%9F%A5%3A%B3%C1%84%98%89%B9%F4%D0%F3%3EA%E9xd%5B%807%06S%23%B2%DD%EE%EC%BB%D7%24%E9%B4%9D%1E%3CcI%BF%A5O%BF%DF%21D%7B%D1%AF%23%21C%0BP%00%C7e%D5%26Et%16W%A6%04%ED%D7w%D8%BC%CB%D5s%D3%08%21T%16%AD6%26%82V%3Cn%BA%8Fi%DA%1B%EC%09%E2%DB%2B%A5%0A%C0e%E9%D1f%21%8C%CCK%DB%95%5D9%FA%80O%D5%E15%A2wq%1E%F6s%B0sW6%95%11%A7%DE%08el%D5%98S%D3H%A4%B3%B4u%AD%B0%E9%E5%09%0F%2F%CB%F0%D9O8%D0s%1C%D2%B1%2B%BFo%18%3C%BFue%25%C4%A7%AE%5C%FDOz%0A%7E%F2%DC%95gq%C9%99%1D%93%7E%40%5B%15%FB%8E%C8%3E%CE%19%E4%CB%E8g%CC%A5%D9%DB%CB%8C%D3%CE%26%A5%CC%89%40W%0A%D0%1E%B3%BC%0F8%40%3Bo%21%14%90b+%CDo%0B%DD%1A%E1%E6%7C%7C%DE%98%DC-%BCzG%BF%C3%BCz%22%0C%EC%27%FA%23%C0%8D%C7%982%E6%A3E%16e%A7%9D%1E%E3%1C%93%DEM%CD%F4b%9F%19%FC%95VF%BE%8B%B6%95%92%FE%D7Z%10%19r%B9%E8%87%F5w%BA5%26%BE3%27%1BW%D6%8F%25%B2%F5%7F%87%C7%EA%E3%5B%01%93%93%FA%FF%CF%05%7B%A6Z%2A%EC%8DR%27ekS%F7R%D6X%2BS%29stX%C1%C7%2F%7B%CD%B12"
I guess in swift, ISO-8859-1
is String.Encoding.isoLatin1
The content contained is
{"lock_wheat":"","topsSth":[{"uid":"8660009","score":0,"score_format":0,"setter":99,"appface":"http:hahaha","sex":1,"location":"China","nickname":"555","level":21,"flag":null,"role_type":1,"audioMuted":1,"videoMuted":0,"realtimeMuted":1,"authority_type":0,"head_honor_id":100021,"livestate":0,"user_score_format":"0","pk_score":null,"sort":21,"rcost_level":9,"cost_level":21}],"md5_tops_broadcaster":"666"}
PS: I edited some words above
I need to convert to the following Java code to Swift
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.zip.Inflater;
public class HelloWorld {
public static String decompress(String data, String charset) throws UnsupportedEncodingException {
byte[] bytes = data.getBytes(charset);
byte[] output = new byte[0];
Inflater decompresser = new Inflater();
decompresser.reset();
decompresser.setInput(bytes);
ByteArrayOutputStream o = new ByteArrayOutputStream(bytes.length);
try {
byte[] buf = new byte[1024];
while (!decompresser.finished()) {
int i = decompresser.inflate(buf);
o.write(buf, 0, i);
}
output = o.toByteArray();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
o.close();
} catch (IOException e) {
e.printStackTrace();
}
}
decompresser.end();
return new String(output);
}
public static String decompress(String data) throws UnsupportedEncodingException {
String decodeTmp = URLDecoder.decode(data, "ISO-8859-1");
System.out.println(decodeTmp);
return decompress(decodeTmp, "ISO-8859-1");
}
public static void main(String[] args) {
String data = "x%DAe%91%C1%92%9B0%0C%86%9F%A5%3A%B3%C1%84%98%89%B9%F4%D0%F3%3EA%E9xd%5B%807%06S%23%B2%DD%EE%EC%BB%D7%24%E9%B4%9D%1E%3CcI%BF%A5O%BF%DF%21D%7B%D1%AF%23%21C%0BP%00%C7e%D5%26Et%16W%A6%04%ED%D7w%D8%BC%CB%D5s%D3%08%21T%16%AD6%26%82V%3Cn%BA%8Fi%DA%1B%EC%09%E2%DB%2B%A5%0A%C0e%E9%D1f%21%8C%CCK%DB%95%5D9%FA%80O%D5%E15%A2wq%1E%F6s%B0sW6%95%11%A7%DE%08el%D5%98S%D3H%A4%B3%B4u%AD%B0%E9%E5%09%0F%2F%CB%F0%D9O8%D0s%1C%D2%B1%2B%BFo%18%3C%BFue%25%C4%A7%AE%5C%FDOz%0A%7E%F2%DC%95gq%C9%99%1D%93%7E%40%5B%15%FB%8E%C8%3E%CE%19%E4%CB%E8g%CC%A5%D9%DB%CB%8C%D3%CE%26%A5%CC%89%40W%0A%D0%1E%B3%BC%0F8%40%3Bo%21%14%90b+%CDo%0B%DD%1A%E1%E6%7C%7C%DE%98%DC-%BCzG%BF%C3%BCz%22%0C%EC%27%FA%23%C0%8D%C7%982%E6%A3E%16e%A7%9D%1E%E3%1C%93%DEM%CD%F4b%9F%19%FC%95VF%BE%8B%B6%95%92%FE%D7Z%10%19r%B9%E8%87%F5w%BA5%26%BE3%27%1BW%D6%8F%25%B2%F5%7F%87%C7%EA%E3%5B%01%93%93%FA%FF%CF%05%7B%A6Z%2A%EC%8DR%27ekS%F7R%D6X%2BS%29stX%C1%C7%2F%7B%CD%B12";
try {
String dateNew = decompress(data);
System.out.println(dateNew);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Here is what I tried:
I am obstructed at this java line
String decodeTmp = URLDecoder.decode(data, "ISO-8859-1");
Here prints
xÚeÁ0 ¥:³Á¹ôÐó>Aéxd[7S#²Ýîì»×$é´<cI¿¥O¿ß!D{ѯ#!C PÇeÕ&EtW¦í×wؼËÕs!T6&V<nºiÚì âÛ+¥ ÀeéÑf!ÌKÛ]9úOÕá5¢wqös°sW6§elÕSÓH¤³´u°éå /ËðÙO8ÐsÒ±+¿o<¿ue%ħ®\ýOz ~òÜgqÉ~@[ûÈ>ÎäËègÌ¥ÙÛËÓÎ&¥Ì@W г¼8@;o!b Ío Ýáæ||ÞÜ-¼zG¿Ã¼z" ì'ú#ÀÇ2æ£Ee§ãÞMÍôbüVF¾¶þ×Zr¹èõwº5&¾3'Ö%²õÇêã[úÿÏ{¦Z*ìR'ekS÷R
as for URLDecoder
in Java, I don't know such thing in Swift.