ترميز ISO 8859-1 لعرض النص الإسباني بشكل صحيح في UITableview

StackOverflow https://stackoverflow.com//questions/22009788

سؤال

أواجه مشكلة في تحويل النص الإسباني الذي تم جلبه من الخدمة في

التنسيق الصحيح.جانب الخادم الذي يتم الترميز به ISO-8859-1.إنها خدمة XML.في

تطبيق iOS7 الذي أستخدمه TBXml محلل لتحليل البيانات.الكود هو:

NSString *XMLString = [[NSString alloc] initWithContentsOfURL:urlString encoding:NSISOLatin1StringEncoding error:nil];

TBXML *tbxml = [[TBXML alloc] initWithXMLString:XMLString];

أقوم بتحليل هذه البيانات، ولكن عندما تكون هناك أحرف إسبانية مثل "بيبيس ي"البلدي

ستكون السلسلة "بيب…س ي" .و "øPor quÈ albergamos a borotadores؟" بدلاً من "¿por Qué Albergamos A Alborotadores؟" .الرجاء المساعدة

هل كانت مفيدة؟

المحلول

يجب عليك تنزيل بيانات XML كبيانات ثنائية (NSData) والسماح للمحلل بالتعامل مع الترميز.

NSData *data = [NSData dataWithContentsOfURL:url];

NSError *error;
TBXML *tbxml = [TBXML tbxmlWithXMLData:data error:&error];

لاحظ أن ملف XML يجب أن يحتوي على ترميز المحتوى باعتباره السطر الأول، لذا ليست هناك حاجة لتحديد ترميز في التعليمات البرمجية.

نصائح أخرى

حاول باستخدام NSUTF8StringEncoding

NSString *XMLString = [[NSString alloc] initWithContentsOfURL:urlString encoding:NSUTF8StringEncoding error:nil];

TBXML *tbxml = [[TBXML alloc] initWithXMLString:XMLString];

تحديث:

NSData *dataContent = [[NSData dataWithContentsOfURL:urlString];
NSString *XMLString = [[NSString alloc] initWithData:dataContent encoding:NSISOLatin1StringEncoding];

TBXML *tbxml = [[TBXML alloc] initWithXMLString:XMLString];

التحديث 2:حاول مع تهيئة البيانات

NSData *dataContent = [[NSData dataWithContentsOfURL:urlString];

TBXML *tbxml = [[TBXML alloc] initWithXMLData:XMLString];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top