socket.io-client-swift icon indicating copy to clipboard operation
socket.io-client-swift copied to clipboard

服务器返回的data中文乱码 "uname":"阿白" 如何解决呢

Open huangxiaolin0425 opened this issue 5 years ago • 7 comments

huangxiaolin0425 avatar Jul 09 '19 02:07 huangxiaolin0425

服务器采用 UTF-8 编码,客户端解码:[str stringByRemovingPercentEncoding]。

yangjunpeng1993 avatar Jul 15 '19 03:07 yangjunpeng1993

服务器采用 UTF-8 编码,客户端解码:[str stringByRemovingPercentEncoding]。

看了一下服务器和客户端的版本,发现iOS版本在10.0之后 弃用了双重utf-8编码,服务器在2.0以后对编码进行重大修改,目前的项目服务器是1.7.4的,客户端是15.1.0的,所以应该是版本不兼容的问题。也非常感谢你的回复

huangxiaolin0425 avatar Jul 15 '19 03:07 huangxiaolin0425

请问版本不兼容问题如何解决?

lanjiaoli avatar Jul 22 '19 00:07 lanjiaoli

服务器采用 UTF-8 编码,客户端解码:[str stringByRemovingPercentEncoding]。

看了一下服务器和客户端的版本,发现iOS版本在10.0之后 弃用了双重utf-8编码,服务器在2.0以后对编码进行重大修改,目前的项目服务器是1.7.4的,客户端是15.1.0的,所以应该是版本不兼容的问题。也非常感谢你的回复 你好 这个问题解决了吗? 我们也会出现偶发性的乱码,没找到解决办法

WatermelonPrince avatar Jan 15 '20 10:01 WatermelonPrince

有没有解决呢?

freyzou avatar Apr 06 '20 11:04 freyzou

我是这样处理的,可以有效(我的是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]; } }];

zfy199466 avatar Jul 13 '20 12:07 zfy199466

我是这样处理的,可以有效(我的是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]; } }];

如果里面有表情就不行了

zhangBoy avatar Sep 25 '21 05:09 zhangBoy