Swift怎么将读取到的byte转换成gbk编码的string

[复制链接]
146 3
一开始我是转换成UTF-8编码的:
NSString(bytes: data!, length: data!.count, encoding: NSUTF8StringEncoding)

但由于源数据里面有中文字符,一到中文字符时,就直接报错了,但是编码里面也没有转到GBK编码的选项。

举报 使用道具

回复

3 个评论

iamthewind  新手上路  发表于 2019-4-17 14:13:36  | 显示全部楼层
一开始我是转换成UTF-8编码的:
NSString(bytes: data!, length: data!.count, encoding: NSUTF8StringEncoding)

但由于源数据里面有中文字符,一到中文字符时,就直接报错了,但是编码里面也没有转到GBK编码的选项。

举报 使用道具

回复
joec  新手上路  发表于 2019-4-17 14:36:17  | 显示全部楼层
kCFStringEncodingGB_18030_2000,gbk

举报 使用道具

回复
Vickicoerb  新手上路  发表于 2019-4-17 16:35:47  | 显示全部楼层
引用 1 楼 xjmeplws 的回复:
kCFStringEncodingGB_18030_2000,gbk


我现在是这么用的了

var inputStream :NSInputStream?
var outputStream:NSOutputStream?
NSStream.getStreamsToHostWithName(ip, port: port, inputStream: &inputStream, outputStream: &outputStream)
let reader = inputStream
let writer = outputStream
writer?.open()
reader?.open()
var message : UInt8 = 0
while reader!.read(&message, maxLength: 1)>0
{
    let wa = NSString(bytes: &message, length: 1, encoding: CFStringConvertEncodingToNSStringEncoding(CFStringEncoding(CFStringEncodings.GB_18030_2000.rawValue))) as! String
}

但是一遇到中文字符就报错了
fatal error:unexpected found nil while unwrapping an optional value

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

ios.irunthink.com
搜索
热搜: iOS swift 下拉刷新

图文热点

更多

开发教程

更多

客服中心

400-800 周一至周日 9:30-17:30 仅收市话费

关注我们

  • 微信扫描
  • 关注微信
关于我们
关于我们
友情链接
联系我们
帮助中心
精贴推荐
源码上传
注册登录
服务支持
资源下载
关注我们
官方微博
官方空间
快速回复 返回顶部 返回列表