Swift 压缩unicode字符串
我正在寻找一种算法来压缩Swift中的Unicode字符串。我将压缩的字符串相对较小(不超过160个字符) 我发现LZW压缩已经实现了。我复制粘贴了代码,该代码可以很好地处理ASCII字符,但当我添加一些Unicode字符时,我得到了一个Swift 压缩unicode字符串,swift,unicode,compression,lzw,Swift,Unicode,Compression,Lzw,我正在寻找一种算法来压缩Swift中的Unicode字符串。我将压缩的字符串相对较小(不超过160个字符) 我发现LZW压缩已经实现了。我复制粘贴了代码,该代码可以很好地处理ASCII字符,但当我添加一些Unicode字符时,我得到了一个致命错误:在压缩时,在result.append(dict[w]!)行上展开可选值时意外地发现了nil我猜该算法不支持unicode字符,因为dict[c]对于任何unicode字符c都是未定义的 我如何调整该算法以支持Unicode字符,还是应该尝试其他压缩方
致命错误:在压缩时,在result.append(dict[w]!)行上展开可选值时意外地发现了nil
我猜该算法不支持unicode字符,因为dict[c]
对于任何unicode字符c
都是未定义的
我如何调整该算法以支持Unicode字符,还是应该尝试其他压缩方法?如果有,哪些
编辑
通过在开始时从
for i in 0 ..< 256
{
let s = String(UnicodeScalar(i))
dict[s] = i
}
0中的i的。<256
{
设s=String(单斜距(i))
dict[s]=i
}
到
0中的i的。<0xFFFF
{
设s=String(单斜距(i))
dict[s]=i
}
我可以让算法工作,尽管这个解决方案需要太多的计算时间和内存
for i in 0 ..< 0xFFFF
{
let s = String(UnicodeScalar(i))
dict[s] = i
}