ترميز ISO 8859-1 لعرض النص الإسباني بشكل صحيح في UITableview
-
21-12-2019 - |
سؤال
أواجه مشكلة في تحويل النص الإسباني الذي تم جلبه من الخدمة في
التنسيق الصحيح.جانب الخادم الذي يتم الترميز به 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];
لا تنتمي إلى StackOverflow