socket.io-client-swift
socket.io-client-swift copied to clipboard
服务器返回的data中文乱码 "uname":"é¿ç½" 如何解决呢
服务器采用 UTF-8 编码,客户端解码:[str stringByRemovingPercentEncoding]。
服务器采用 UTF-8 编码,客户端解码:[str stringByRemovingPercentEncoding]。
看了一下服务器和客户端的版本,发现iOS版本在10.0之后 弃用了双重utf-8编码,服务器在2.0以后对编码进行重大修改,目前的项目服务器是1.7.4的,客户端是15.1.0的,所以应该是版本不兼容的问题。也非常感谢你的回复
请问版本不兼容问题如何解决?
服务器采用 UTF-8 编码,客户端解码:[str stringByRemovingPercentEncoding]。
看了一下服务器和客户端的版本,发现iOS版本在10.0之后 弃用了双重utf-8编码,服务器在2.0以后对编码进行重大修改,目前的项目服务器是1.7.4的,客户端是15.1.0的,所以应该是版本不兼容的问题。也非常感谢你的回复 你好 这个问题解决了吗? 我们也会出现偶发性的乱码,没找到解决办法
有没有解决呢?
我是这样处理的,可以有效(我的是iOS源码,非Swift的。Swift我没有测试,仅供参考) [socket on:@"broadcastingListen" callback:^(NSArray* data, SocketAckEmitter* ack) { //这里是我自己的代码处理,至于服务器返回的是什么看自己的要求了 for (NSString *dataStr in data[0]) { //进行乱码的处理 const char *c = [dataStr cStringUsingEncoding:NSISOLatin1StringEncoding]; NSString *jsonPath = [[NSString alloc]initWithCString:c encoding:NSUTF8StringEncoding]; } }];
我是这样处理的,可以有效(我的是iOS源码,非Swift的。Swift我没有测试,仅供参考) [socket on:@"broadcastingListen" callback:^(NSArray* data, SocketAckEmitter* ack) { //这里是我自己的代码处理,至于服务器返回的是什么看自己的要求了 for (NSString *dataStr in data[0]) { //进行乱码的处理 const char *c = [dataStr cStringUsingEncoding:NSISOLatin1StringEncoding]; NSString *jsonPath = [[NSString alloc]initWithCString:c encoding:NSUTF8StringEncoding]; } }];
如果里面有表情就不行了