Как мне преобразовать арабский (в кодировке Юникод) в шестнадцатеричное представление байтов в Objective-C? - PullRequest
2 голосов
/ 28 декабря 2011

Я пытаюсь использовать http-запрос для вызова веб-сайта с помощью iPhone; при разработке небольшого приложения в Objective-C, однако у меня возникают проблемы с передачей арабских символов! как мне нужно использовать юникод в шестнадцатеричном виде ( арабские символы в юникоде ?

Я сделал это перед разработкой веб-сайта с использованием PHP, используя следующую функцию:

/**
* Converts a string to USC-2 encoding if neccessary.
*/

function string_unicode($string) 
{
    if (function_exists('iconv')) 
    {  
      $latin = @iconv('UTF-8', 'ISO-8859-1', $string);

        if (strcmp($latin, $string)) 
         {
            $arr = unpack('H*hex', @iconv('UTF-8', 'UCS-2BE', $string));
              return strtoupper($arr['hex']) .'&unicode=1';  
         }
     }

    return FALSE;
 }

НО я изо всех сил пытаюсь добиться того же в Objective-C, пожалуйста, помогите !! Спасибо

1 Ответ

3 голосов
/ 29 декабря 2011

Наконец, это было довольно простое решение с использованием форматирования !!

-(NSString *)getUniCode:(NSString *)aString
{
    NSString *theStringToReturn  = nil;


    NSMutableString *theEncodedString = [NSMutableString stringWithString:@""];

    for (NSInteger theCharIndex=0; theCharIndex< [message length]; theCharIndex++) {

        [theEncodedString appendFormat: @"%04x", [message characterAtIndex: theCharIndex]];

    }

    theStringToReturn = [NSString stringWithString:theEncodedString];

    return theStringToReturn;
}

Надеюсь, это поможет другим.

...