如何将阿拉伯语(Unicode编码)转换为Objective-C中的字节十六进制表示?
我正在尝试使用http请求调用使用iPhone的网站;然而,通过在Objective-C中开发一个小应用程序,我在传递阿拉伯语字符时遇到了问题!因为我需要在十六进制中使用unicode(?) 在使用PHP开发网站之前,我已经使用以下函数完成了此操作:如何将阿拉伯语(Unicode编码)转换为Objective-C中的字节十六进制表示?,objective-c,unicode,encoding,Objective C,Unicode,Encoding,我正在尝试使用http请求调用使用iPhone的网站;然而,通过在Objective-C中开发一个小应用程序,我在传递阿拉伯语字符时遇到了问题!因为我需要在十六进制中使用unicode(?) 在使用PHP开发网站之前,我已经使用以下函数完成了此操作: /** * Converts a string to USC-2 encoding if neccessary. */ function string_unicode($string) { if (function_exists('ic
/**
* 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中实现同样的目标,请帮助!!谢谢最后,使用格式是非常简单的解决方案
-(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;
}
-(NSString*)getUniCode:(NSString*)aString
{
NSString*theStringToReturn=nil;
NSMUTABLETRING*编码字符串=[NSMUTABLETRING STRING WITHSTRING:@”“];
对于(NSInteger theCharIndex=0;theCharIndex<[消息长度];theCharIndex++){
[TheEncodeString appendFormat:@“%04x”,[MessageCharacterAtIndex:theCharIndex];
}
字符串ToReturn=[NSString STRING WITHESTRING:TheEncodeSTRING];
将管柱返回原位;
}
我希望这会对其他人有所帮助。您如何传递阿拉伯语字符?在URL中?在请求正文中?您有什么特别的问题?最重要的是,我需要将它们编码为unicode十六进制格式,如(0628表示ب)然后我需要使用添加转义百分比来转义它们,我的问题是如何做上面的php代码所做的事情,即如果文本是拉丁语,则确认文本,然后什么也不做,否则将阿拉伯文字符转换为十六进制格式?很多感谢还有其他标准化的方法通过HTTP发送Unicode,比如URL转义码或JSON编码,不是吗你使用它们吗?如果服务器需要,你甚至可以发送原始的Unicode编码文本。否则,你应该更改你的问题和标题,明确地说“如何将Unicode编码文本转换为字节十六进制表示”?我正在寻找与上述Objective-C中PHP代码等效的文本?有什么想法吗