2012-01-13 113 views
1

例如:的NSString *天= [[NSString的stringWithFormat:@ “السبت”];和我认为该字符串以十六进制表示的的NSString HEX

表示是这样的:%C7%E1%D3%C8%CA (windows-1256编码)

我想要的是如何将阿拉伯字符串转换为十六进制像这样。

回答

2

一种可能的解决方案:

NSString *day [email protected]"السبت"; 
NSData *strData = [day dataUsingEncoding:NSWindowsCP1254StringEncoding]; 
NSMutableString *mut = [NSMutableString string]; 
int i; 
for (i = 0; i < [strData length]; i++) 
{ 
    [mut appendFormat:@"%%%02X", ((char *)[strData bytes])[i]]; 
} 

mut将包含一天中的十六进制编码表示。

+0

谢谢你的回答。 – NouNou 2012-01-13 20:51:54

+0

没问题。您可以随时接受/ upvote。 – 2012-01-13 20:53:51

+1

也许...我们没有足够的信息知道如何格式化00-0f,如果它们应该是零填充或不填充,如果是这样的格式应该是@“%%% 0.2X” – 2012-01-13 20:56:33

0

类似于[day stringByAddingPercentEscapesUsingEncoding:@"whatever"]

+0

谢谢你,我会试试这个。 – NouNou 2012-01-13 20:43:42

+0

它不会正确地转义字符......另一种方法是使用CoreFoundation函数,但这有点复杂。我的解决方案将转义所有阿拉伯字符 – 2012-01-13 20:46:42

+0

@ Michael Krelin @ H2CO3它工作正常。 – NouNou 2012-01-13 20:54:16