gpt4 book ai didi

iphone - 检测到不正确的 NSStringEncoding 值 0x0000

转载 作者:行者123 更新时间:2023-12-03 18:54:43 25 4
gpt4 key购买 nike

我在 iphone 中使用 ASIHttpRequest 库,当我尝试在以下 URL 上执行 GET 请求时,我收到此消息,但请求失败,如果有人遇到此问题或知道可能的解决方案,请告知让我知道。其次,如果我将链接粘贴到浏览器中,它就可以正常工作。

[网址]

http://www.rugsale.com/iphone/app/?type=product_list&params=id%3D334&ver=1.0&key=kaoud

[错误]

检测到不正确的 NSStringEncoding 值 0x0000。假设 NSStringEncodingASCII。将在不久的将来停止这种兼容性映射行为。

提前谢谢

问候

赛义德·阿尔萨兰·佩尔韦兹www.saplogix.net

最佳答案

如果您在返回有效响应并设置请求编码之前调用 [asiHttpRequest getResponseString](即无法连接到服务器),这种情况尤其会发生。

解决此警告的最简单方法是编辑 ASIHTTPRequest 类,删除 @synthesize responseEncoding 并添加一个简单的自定义 getter/setter,以便您可以返回默认值如果未设置响应编码,则编码:

- (NSStringEncoding) responseEncoding
{
return responseEncoding || self.defaultResponseEncoding;
}

- (void) setResponseEncoding:(NSStringEncoding)_responseEncoding
{
responseEncoding = _responseEncoding;
}

对于 getResponseString 方法还有一个更具体的解决方法,我认为这是唯一使用编码而不检查值的地方 - 因为编码应该设置为任何非零长度回复:

- (NSString *)responseString
{
NSData *data = [self responseData];
if (!data) {
return nil;
}
// --- INSERT THIS BLOCK ---
// If the 'data' is present but empty, return a simple empty string
if (data.length == 0) {
return @"";
}
//assert(self.responseEncoding); // if you're into runtime asserts, uncomment this
// --- END OF BLOCK TO INSERT ---
return [[[NSString alloc] initWithBytes:[data bytes] length:[data length] encoding:[self responseEncoding]] autorelease];
}

关于iphone - 检测到不正确的 NSStringEncoding 值 0x0000,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4317413/

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