Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 压缩unicode字符串_Swift_Unicode_Compression_Lzw - Fatal编程技术网

Swift 压缩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字符,还是应该尝试其他压缩方

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

我发现LZW压缩已经实现了。我复制粘贴了代码,该代码可以很好地处理ASCII字符,但当我添加一些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
}