WKWebView 加载 TXT 文件编码问题
今天在做在线预览功能的时候碰到了一个蛋疼的问题,office 格式都可以完美的适配,但是 txt 格式出现了乱码。没办法只能进行一个转码,然后再输出内容。
提取 TXT 文件内容并转码 utf8
1 | do { |
这里我们的 body 就是我们获取的内容,默认的我们用了 utf8
编码格式,如果转码错误,说明文件的编码格式为其他格式。
对应中文编码
由于在 Swift 中,我并没有找到有关 GBK
,GBK18030
等的转码写法,所以,这里我们使用 NSString
来进行中文简体和繁体的转码。
1 | if let body = try? NSString(contentsOf: url, encoding: SimplifiedChinese.GBK) { |
相应编码的 encoding
如下:
1 | /// 中文简体 |
显示 HTML
在显示内容的时候我发现字体格外的小,所以这个需要进行一个对应。
1 | "<html><header><meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=2.0, minimum-scale=1.0, user-scalable=no'></header><body>\(body)</body></html>" |
重要的是 viewport meta
标签,这里可以进行一个缩放。
device-width
:设备宽度initial-scale
:初始缩放maximum-scale
:最大缩放minimum-scale
:最小缩放user-scalable
:是否允许使用者缩放
OK,显示完美。