【发布时间】:2016-08-29 23:59:49
【问题描述】:
我在 openfire 聊天应用服务器中发送表情符号时发现了这个错误。请提出解决方法。
Error Domain=GCDAsyncSocketErrorDomain Code=7 "套接字被远程关闭 peer" UserInfo={NSLocalizedDescription=远程对等端关闭的套接字}
【问题讨论】:
我在 openfire 聊天应用服务器中发送表情符号时发现了这个错误。请提出解决方法。
Error Domain=GCDAsyncSocketErrorDomain Code=7 "套接字被远程关闭 peer" UserInfo={NSLocalizedDescription=远程对等端关闭的套接字}
【问题讨论】:
使用NSNonLossyASCIIStringEncoding 和NSUTF8StringEncoding 对您的消息进行编码
NSString *messageStr = [NSString stringWithUTF8String:[textview.text UTF8String]];
// encode message
NSData *msgData = [textview dataUsingEncoding:NSNonLossyASCIIStringEncoding];
NSString *goodMsg = [[[NSString alloc] initWithData:msgData encoding:NSUTF8StringEncoding] autorelease];
注意:如果您的客户端应用程序将表情符号格式化为 \ue415,您可以在之后使用以下内容对其进行转换:
- (NSString *) substituteEmoticons {
NSString *res = [self stringByReplacingOccurrencesOfString:@"\ue415" withString:@":)"];
res = [res stringByReplacingOccurrencesOfString:@"\ue403" withString:@":("];
res = [res stringByReplacingOccurrencesOfString:@"\ue405" withString:@";-)"];
res = [res stringByReplacingOccurrencesOfString:@"\ue418" withString:@":-x"];
.....
return res;
}
【讨论】: