NSUTF8StringEncoding返回nil NSString [英] NSUTF8StringEncoding returns nil NSString
问题描述
我正在使用最新的SDK和XCode 4.2开发iOs 4应用程序。
I'm developing an iOs 4 application with latest SDK and XCode 4.2.
我使用Web服务检索一些数据, 。但是,当我这样做
I'm using a web service to retrieve some data, and I receive that data. But, when I do this
NSString *json_string = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding];
receivedData
有944bytes,但 json_string
是nil。
receivedData
has 944bytes but json_string
is nil.
从web服务我得到这个字符串(从浏览器窗口复制和粘贴):
From web service I'm getting this string (copy & pasted from browser window):
{"posts": [ { "ID": "324","fecha": "10/02/2012","titulo": "Preparada para la lluvia","texto": "¡Al mal tiempo buena cara! Eso pensé al vestirme el otro dÃa que hiz...","foto": "2012/02/image20.jpg" } ] }
我试图在这里验证JSON, http://jsonformatter.curiousconcept.com/ ,但我得到它是无效的。显示此格式化输出:
I have tried to validate JSON here, http://jsonformatter.curiousconcept.com/, but I get it is invalid. Show me this formatted output:
{
"posts":[
{
"ID":"324",
"fecha":"10/02/2012",
"titulo":"Preparada para la lluvia",
"texto":,
"foto":"2012/02/image20.jpg"
}
]
}
$ b b
这个错误:
And this errors:
Error:Strings should be wrapped in double quotes.[Code 17, Structure 20]
Error:Invalid characters found.[Code 18, Structure 20]
推荐答案
确保你有有效的UTF8数据,你检查使用像
make sure your have valid UTF8 data, you check that using functions like,
NSStringEncoding encoding;
NSString *pageData = [NSString stringWithContentsOfURL:url usedEncoding:&encoding error:NULL];
NSLog(@"Encoding %d",encoding);(Note: NSUTF8StringEncoding = 4)
可用编码,
*/
enum {
NSASCIIStringEncoding = 1, /* 0..127 only */
NSNEXTSTEPStringEncoding = 2,
NSJapaneseEUCStringEncoding = 3,
NSUTF8StringEncoding = 4,
NSISOLatin1StringEncoding = 5,
NSSymbolStringEncoding = 6,
NSNonLossyASCIIStringEncoding = 7,
NSShiftJISStringEncoding = 8, /* kCFStringEncodingDOSJapanese */
NSISOLatin2StringEncoding = 9,
NSUnicodeStringEncoding = 10,
NSWindowsCP1251StringEncoding = 11, /* Cyrillic; same as AdobeStandardCyrillic */
NSWindowsCP1252StringEncoding = 12, /* WinLatin1 */
NSWindowsCP1253StringEncoding = 13, /* Greek */
NSWindowsCP1254StringEncoding = 14, /* Turkish */
NSWindowsCP1250StringEncoding = 15, /* WinLatin2 */
NSISO2022JPStringEncoding = 21, /* ISO 2022 Japanese encoding for e-mail */
NSMacOSRomanStringEncoding = 30,
NSUTF16StringEncoding = NSUnicodeStringEncoding, /* An alias for NSUnicodeStringEncoding */
NSUTF16BigEndianStringEncoding = 0x90000100, /* NSUTF16StringEncoding encoding with explicit endianness specified */
NSUTF16LittleEndianStringEncoding = 0x94000100, /* NSUTF16StringEncoding encoding with explicit endianness specified */
NSUTF32StringEncoding = 0x8c000100,
NSUTF32BigEndianStringEncoding = 0x98000100, /* NSUTF32StringEncoding encoding with explicit endianness specified */
NSUTF32LittleEndianStringEncoding = 0x9c000100 /* NSUTF32StringEncoding encoding with explicit endianness specified */
};
typedef NSUInteger NSStringEncoding;
这篇关于NSUTF8StringEncoding返回nil NSString的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!