gpt4 book ai didi

c++ - NSMutableData 到 NSString - 如何知道用于 HTTP 响应的编码

转载 作者:行者123 更新时间:2023-11-28 06:48:19 25 4
gpt4 key购买 nike

我正在使用 Google Protobuf 将序列化类发送到 http 服务器。执行此操作的命令是:
message.SerializeToString(&out); 请注意,我们正在序列化为一个字符串。 服务器将完全相同的对象返回给我。

因此,在我的连接:didReceiveData 方法中,我正在获取数据。

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data
{
if (self.receivingData) {
[self.dataReceived appendData:data];
}
}

在我的 connectionDidFinishLoading 方法中,我认为我需要将 NSMutableData (self.dataReceived) 放入 NSString。

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
self.receivingData = NO;
NSLog(@"%@", self.dataReceived);

NSString *data = [[NSString alloc] initWithData:self.dataReceived encoding:NSASCIIStringEncoding]; // Wrong encoding ????

NSMutableDictionary *processedData = [NSMutableDictionary dictionaryWithCapacity:1];
[processedData setObject:data forKey:@"ImageData"];

NSNotificationCenter *processedNote = [NSNotificationCenter defaultCenter];
[processedNote postNotificationName:@"DataReceived" object:nil userInfo:processedData];
}

但我不确定要使用什么编码。当我发送数据时,它看起来像这样:

"\b\x01\x12\x04Lucy\x1a\xd4\xdc;\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\...... (There's more)

当我收到数据时,它看起来像这样:

<08011204 4c756379 1ad4dc3b ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ..... (There's more)

当我用上面的数据(编码 NSASCIIStringEncoding)初始化 NSString 时,我得到这个:

LucyÔÜ;ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ....... (There's more)

最终,我需要使用 Google Protobuf 方法从字符串解析数据:message.ParseFromString(data);

我怎么知道要使用哪种编码?

最佳答案

试试这个。

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
NSLog(@"%@", [response textEncodingName]);
}

关于c++ - NSMutableData 到 NSString - 如何知道用于 HTTP 响应的编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24521362/

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