user198725878
user198725878

Reputation: 6386

Arabic Content is displayed in weird Characters

I am trying to parse the below Arabic content

<type id="14">
<data name="title">قافية</data>
</type>

NSString *responseString = [request responseString];
NSData *xmlData=[[request responseString] dataUsingEncoding:NSUTF8StringEncoding];

when print the response i am getting as below

responseString:<?xml version="1.0" encoding="UTF-8" ?><type>
<data name="title">ÙاÙÙØ©</data>
</type>

please see This image attached , this is how it displays the content on my ios app

Please let me know how can i fix this

Upvotes: 0

Views: 676

Answers (2)

Iducool
Iducool

Reputation: 3653

First of all after checking your response string(<?xml version="1.0" encoding="Change here" ?><type>) it looks me issue in xml encoding type. Tell to your web developer provide proper encoding for arabic content and check it's response in browser if it showing properly after that try various encoding at your side. It will definitely fixed.

Upvotes: 0

Mehul Mistri
Mehul Mistri

Reputation: 15147

Try to use below encoding,

// The following constants are provided by NSString as possible string encodings.

enum {
   NSASCIIStringEncoding = 1,
   NSNEXTSTEPStringEncoding = 2,
   NSJapaneseEUCStringEncoding = 3,
   NSUTF8StringEncoding = 4,
   NSISOLatin1StringEncoding = 5,
   NSSymbolStringEncoding = 6,
   NSNonLossyASCIIStringEncoding = 7,
   NSShiftJISStringEncoding = 8,
   NSISOLatin2StringEncoding = 9,
   NSUnicodeStringEncoding = 10,
   NSWindowsCP1251StringEncoding = 11,
   NSWindowsCP1252StringEncoding = 12,
   NSWindowsCP1253StringEncoding = 13,
   NSWindowsCP1254StringEncoding = 14,
   NSWindowsCP1250StringEncoding = 15,
   NSISO2022JPStringEncoding = 21,
   NSMacOSRomanStringEncoding = 30,
   NSUTF16StringEncoding = NSUnicodeStringEncoding,
   NSUTF16BigEndianStringEncoding = 0x90000100,
   NSUTF16LittleEndianStringEncoding = 0x94000100,
   NSUTF32StringEncoding = 0x8c000100,
   NSUTF32BigEndianStringEncoding = 0x98000100,
   NSUTF32LittleEndianStringEncoding = 0x9c000100,
   NSProprietaryStringEncoding = 65536
};

Upvotes: 1

Related Questions