首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSstream写入编码问题

NSstream写入编码问题
EN

Stack Overflow用户
提问于 2013-02-23 01:14:13
回答 2查看 440关注 0票数 1

我正在使用nodejs TCP服务器和actionHero库。

它使用netcat和telnet工作。

代码语言:javascript
复制
- (IBAction)sendText:(id)sender {
NSString *response  = [NSString stringWithFormat:@"%@", [_sendTextField.text stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];
NSLog(@"writing %@",response);

///////////////////////////// this line works/////////////////////////////////////////////////////
//  NSData *data = [[NSData alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL   URLWithString:@"http://www.google.com"]]];


///////////////////////////// this line doesnt work/////////////////////////////////////////////////////
NSData *data = [[NSData alloc] initWithData:[response dataUsingEncoding:NSUTF8StringEncoding]];


//%u returns a non zero value
NSLog(@"%u",[outputStream write:[data bytes] maxLength:[data length]]);
}

我从处理流事件方法中得到一个空streamError

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-23 02:20:36

找到了我自己问题的答案。原来问题出在actionHero的on data方法中,该方法查找ios应用程序没有提供的/n。附加了一个\n,现在它很好

票数 1
EN

Stack Overflow用户

发布于 2013-02-23 02:09:20

由于不知道response的内容,我无法给您一个明确的答案,说明为什么NSUTF8StringEncoding不能使用它。但是,一般来说,如果您的内容中有一个字节序列与UTF-8不兼容,那么当您调用-dataUsingEncoding:时,您将得到nil。

有一个我从阅读Mike Ash's blog中学到的策略(请查看“后备”部分),它在像您这样的情况下很好地服务于我。

简单地总结一下,首先尝试使用NSUTF8StringEncoding。如果这不起作用,可以尝试使用NSISOLatin1StringEncoding。如果这不起作用,可以尝试使用NSMacOSRomanStringEncoding。Mike的博客有这样的理由。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15029685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档