gpt4 book ai didi

objective-c - NSstream 写入编码问题

转载 作者:可可西里 更新时间:2023-11-01 02:49:26 27 4
gpt4 key购买 nike

我正在尝试使用 NSoutputstream 发送一个字符串,但是我似乎无法获得正确的编码,使用 dataWithContentsOfURL 是可行的

我正在使用带有 actionHero 库的 nodejs TCP 服务器。

它可以使用 netcat 和 telnet。

- (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

最佳答案

不知道 response 的内容,我不能给你一个具体的答案,为什么 NSUTF8StringEncoding 不能用它。但是,一般来说,如果您的内容中有一个与 UTF-8 不兼容的字节序列,您将在调用 -dataUsingEncoding: 时得到 nil。

我从阅读中学到了一个策略 Mike Ash's blog (查看“回退”部分下的内容),它在像您这样的情况下对我很有帮助。

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

关于objective-c - NSstream 写入编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15029685/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com