iOS 5 - 无法将十六进制转义序列(无高字符)转换为UTF8编码字符

时间:2012-09-25 19:55:03

标签: ios json ios5 nsjsonserialization

经过一段时间的互联网搜索后,我会向您提供快速帮助。 我正在开发一个消耗一些JSon数据的iOS 5应用程序(针对iPhone)。一切都运行良好,直到服务器端的人决定在JSon消息中实现一个用base64String转换的图像。 现在,这是发生的事情: 我能够下载所有的JSon消息(下面有一个示例),如果我保留JSon字符串并用JSONlint解析它它说消息是好的,所以我很确定消息没有格式错误,但当我尝试使用NSJSONSerialization类在JSon中解析它,它给了我一个我从未遇到过的错误。

这是我收到的JSon消息:

  

{“AuthenticationId”:“6e5d3c5c-ce37-49b9-8331-047565181e91”,“PropertyBag”:[{“Key”:“auth_id”,“Value”:“6e5d3c5c-ce37-49b9-8331-047565181e91”} { “关键”: “的UserInfo”, “值”: “{\” 姓\ “:\” thisIsTheFirstName \ “\ ”名字\“:\ ”thisIsTheLastName \“,\ ”企业邮箱\“:空,\”区域\ “:4,\” StoreDescription \ “:\” thisIsAStore \ “\ ”SerializeImage \“:\” 傉䝎਍ਚ\ u0000的ഀ䡉刭\u0000㈀\u0000㈀؈\u0000Ḁ蠿±\ u0000的猁䝒乙캮\u0000Ѐ䅧䅍\ u0000的辱تجա\ u0000的ऀ䡰獙\ u0000的쌎\ u0000的쌎윁ꡯd؀䤩䅄桔嵙홈ᡗ㫯摆䔔喋婎馶䆹బ⍳昚ᮙ嶵雕嶬暔숍荁떢镶ഛ䗚ێۍ䋭䨚㑞甒丷䎇绦쟠繬컫뿾﯃츜\ uffff꾞\ udf57䆷샸鞟\ uffff칽鹳칱凤楠횄枰麄ဪ纽輌岍擹䨹ဠ啔쥙㊲\ ud832鲦阜鹋꿗شحم﷽쓄쬄佌쿧䟛ꫴ猽罴㦯婽ثي螕넎쳬⹌♟琉䅊笁㔾붕箾⬷⤭⥡覉쿬鳐풟珗ᤙ楩포ឋ泃楤襩⚥넥緳ௌଋ⴬䔥筼陱鲖샌␟䌨⌄ṀᏆ谂얋뱘箧矅▌伂蛢䨍蚇섁ీ텐\udd6f߳丧腨뇱⸱ᝋ摎҄\ udbcf㵥퐀ࠉ⍹⸘倪...앤疸鳫Дᶎ풶ỡɳ㼲윷嘧䮅ᙰ逓칸碎䎖ꕃشم㳼ꏗЇ౱㾡맞Ꮳ뢺좸벒蓘庐祹㿼逓ჴ␐쀫袘黧殗⟕䙏ࠏ 설ॽ煱䉡ꚧ粦橼⳰䮨银҄︾厣㢧鲏단ꋠ䋂맡탤ᔘᨚᳯၚ쯲ی⌣븣藄ꂗ곬汤殌浭\udfe5짠쫉팊럳蟟螇Ἱ - 귩ی⺅đꂁ 㮂㨺炸萨౤篆䭋쾋됫졘ᒫ쏆ꔰ奲览潮菵旗猍狶سخ뉗ཧ꼣ᷡꩡ냳杶㊇\ ude63৲뵐伅誸䄰귣ꯋ땗萡答㭻 틪惩翎㲞珡എ懒짉빉顁隩혨帱쌁逪᠕☯坃ሽ댓䂮ꫨ噇뱠ಘ沉汖\ ud864뇕懩㒃콕趼碕婝᝟⸗⏛뮧祷聿↲ꃸ紭兑ꃢ䗝费䥺﯅껪왝샊☆⁢靧焮健\ ud943圞铀嚃ꗁ娟襑핂견ⰼ\udaba쯳妗뛁\ udc6d䇲\ udffb룞뻁皱ᖍ\ udcef昙﫽ꇰ্ㅎ㶝啂견띜W¯¯抪\ udf1c䁔黩ꔞⲂ怛뢾앲谙ဓ䓀悘湓腀㹎⥈襕췍㻍쾫⵹躵܆ԇ믂㤋줁軵䡴鲢餷جم|斟ញ㥥郉闰뉔سخى쌥 ᪩袮抠晦ꥆ꺘ꄷ䛤ᐓ묌滞ᓞ뛖骝斐볙阃睁덨\ ude4c췦វꀊ友⤑殧⼱\udc6c᫩ȷⱁ蚻디ꪹ䌓㥙晙卓톓诐Ꭱ젖진覤䂌榾ၨㄖ⠥䀦Ç砾㾐綶烠Յꯧ⼨䖷䬌䔎쥘萈킖駠疬⣶琲稼擤⍌ਐ\ udb2b慩ጎ⼥⛽᭏傁빢淀ⱟ㕵䛊鋈쬞䈆陯نحم䁯鲐쐄⥔礻◄假퇬迥䯼阧ㄺ췰꒶蔯흌뀓厉뮲巜벼뭽ኲ ...⪪阙ጣ깂潮ʲ냹媺᢬▶꿵过膝ꡐ덠통歳૗阝辽ᗈ趍㧆ዥ\ ude1fᇑ嵝䏀៵頮䐷갯伨⭭떧䅄匜抉̋ظم秐긬읻㦎閅됵ダ〰萠뛡䓕鹐䃀⃡׉\ uda28፞ᗉ춰丛쁀▅Ί〼*⤅⮱劽⢄风⛤ꗎ璸ȆӁ舆ꋑ슚幌쪡䭊ዹ㷮⺚਑볉匘卛季훿儜鑙屡☇뢨ꡨ씼鷎ꬽ౔㺲瓶ߞ엸嬭䂜ф찄了鸋峡ᵝჷׂ趿૞檇畕啎쁕Ꞌ궭徍׍痻㉸爒ࣶ蔉璢斖਻㶒쫡̋㮠钌آፂ簠❴됥⍜䟱䝇쇹煛酑θ舌﹂李꾣刯׽닿좁ꈳ鮰獐矦뢎ꏫ匐荡䊰芈濷붶ᗉ呙뢀ᙎ빋ÿ䠦죥ᤸ嵚\ u0000的\ u0000的䕉䑎䊮艠\ “}”}] }`

Cocoa抛出的错误是:

  

错误Domain = NSCocoaErrorDomain Code = 3840“操作无法完成。(Cocoa error 3840。)”(无法将十六进制转义序列(无高字符)转换为UTF8编码字符。)UserInfo = 0x688cfd0 {NSDebugDescription =无法将十六进制转义序列(无高字符)转换为UTF8编码字符。}

1 个答案:

答案 0 :(得分:2)

找到解决方案:)。 问题不在于血腥的NSJSonSerialization类,而是来自服务器端的人员推出的编码图像。他们声称是Base64String,但它是一个简单的字符串... AAAARGH!
发现问题,改变图像与正确的转换现在它的工作就像一个魅力!