- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
NSString
的 initWithContentsOfURL:usedEncoding:error:
方法会自动检测正确的字符串编码,以解码指定 URL 中的数据。但是,此方法是同步的,我尝试使用 NSURLConnection
异步执行相同的任务。
我遇到的问题是,当我从 URL 获取 NSData
时,没有方法可以在不知道编码的情况下轻松将该数据转换为 NSString
。当我提取 HTML 文档时,URL 可以是互联网上的任何网站,编码可以是各种各样的东西。
有没有一种方法可以发现编码,基本上完全执行 initWithContentsOfURL:usedEncoding:error:
的作用?
最佳答案
以下是您的 connection:didReceiveResponse:
委托(delegate)方法的外观:
- (void) connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
NSStringEncoding nsEncoding = 0;
NSString *textEncodingName = [response textEncodingName];
if (textEncodingName)
{
CFStringEncoding cfEncoding = CFStringConvertIANACharSetNameToEncoding((CFStringRef)textEncodingName);
if (cfEncoding != kCFStringEncodingInvalidId)
{
nsEncoding = CFStringConvertEncodingToNSStringEncoding(cfEncoding);
}
}
if (nsEncoding != 0)
{
// Great, you have your encoding
}
else
{
// You are on your own, you have to apply a heuristic
}
}
另外,我建议您阅读Friday Q&A 2010-02-19: Character Encodings作者:迈克·阿什。
关于objective-c - 异步相当于 NSString 的 -initWithContentsOfURL :usedEncoding:error:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4210182/
我尝试加载未知编码的文件。这是因为我并不总是可以控制要加载的文件。我假设方法stringWithContentsOfFile:usedEncoding:error:将执行此操作,并让我知道文件编码。不
我在使用 + stringWithContentsOfFile:usedEncoding:error: 时遇到问题: 我在usedEncoding中遇到的问题:(NSStringEncoding *)
我一直觉得这种方法非常方便。是否有 Xamarin 等效项? 最佳答案 您可以使用以下内容: var text = System.IO.File.ReadAllText("TestData/ReadM
我正在尝试导入由 filemaker 创建并使用 iTunes 文件共享复制到我的设备上的 csv。我坚持应该是一个简单的步骤。我只是看不出我哪里错了。尝试了替代方法并设置 UTF8 编码。还尝试从
我只是试了一下: NSString *docPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Docs/data.txt"]; NS
NSString 的 initWithContentsOfURL:usedEncoding:error: 方法会自动检测正确的字符串编码,以解码指定 URL 中的数据。但是,此方法是同步的,我尝试使用
我想知道什么相当于+[NSString stringWithContentsOfURL:usedEncoding:error:] 在 CoreFoundation 中? 我知道我可以使用 (__bri
我是一名优秀的程序员,十分优秀!