如何在Objective-C中将阿拉伯语(Unicode编码)转换为字节十六进制表示?

时间:2011-12-28 01:16:46

标签: objective-c unicode encoding

我正在尝试使用http请求使用iPhone调用网站;通过在Objective-C中开发一个小应用程序,但是我在传递阿拉伯字符方面遇到了问题!因为我需要使用十六进制的unicode,如(Arabic characters in Unicode

在使用以下函数使用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 个答案:

答案 0 :(得分:3)

最后,通过使用格式化,这是一个非常简单的解决方案!!

-(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;
}

我希望这会对别人有所帮助。