ios - openfire 聊天服务器在发送表情符号时出错

标签 ios xmpp chat openfire

我在 openfire 聊天应用程序服务器中发送表情符号时发现了这个错误。请建议如何解决它。

Error Domain=GCDAsyncSocketErrorDomain Code=7 "Socket closed by remote peer" UserInfo={NSLocalizedDescription=Socket closed by remote peer}

最佳答案

使用 NSNonLossyASCIIStringEncodingNSUTF8StringEncoding 对您的消息进行编码>

 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;
}

关于ios - openfire 聊天服务器在发送表情符号时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37029565/

相关文章:

xmpp - XMPP中的 "Roster"是什么?

xmpp - ofFice 对话日志仅保留群聊节的正文

javascript - 如何在匿名函数中应用node.js REPL?

php - 基于 PHP 的站点上基于 Telegram 的聊天 : HOWTO?

android - RecyclerView 在插入时滚动

使用 Sockets 的 iPhone 通信

ios - 找不到框架错误 Xcode 8

ios - IBAction 未被调用,但 UI 正在更新?

javascript - 在 React 站点中使用搜索栏时,iOS 键盘不会关闭

ios - 静默通知未进入应用程序未运行状态?