压缩unicode字符串

时间:2015-05-29 13:36:54

标签: swift unicode compression lzw

我正在寻找一种在Swift中压缩Unicode字符串的算法。我将压缩的字符串相对较小(不超过160个字符)。

我发现LZW压缩已经实现here。我复制粘贴了与ASCII字符配合良好的代码,但是一旦我添加了一些Unicode字符,我在压缩时得到了fatal error: unexpectedly found nil while unwrapping an Optional value,在result.append(dict[w]!)行上我的猜测是算法没有' t支持unicode字符,因为dict[c]未定义任何Unicode字符c

如何调整该算法以支持Unicode字符,还是应该尝试其他压缩方法?如果是的话,哪些?

修改

通过从

开始更改循环
for i in 0 ..< 256
{
    let s = String(UnicodeScalar(i))
    dict[s] = i
}

for i in 0 ..< 0xFFFF
{
    let s = String(UnicodeScalar(i))
    dict[s] = i
}

我可以让算法工作,但是,该解决方案需要太多的计算时间和内存。

0 个答案:

没有答案