2014-05-19 46 views
0

在阿拉伯語的情況下,它不能代替逗號。stringByReplacingOccurrencesOfString對於阿拉伯數字不能很好地工作

NSString *strAfterReplacingComma = @"٢٠٠٫٠٠";//100.00 
    NSString *strAfterReplacing = [strAfterReplacingComma stringByReplacingOccurrencesOfString:@"," withString:@"."]; 

    NSLog(@"%@", strAfterReplacing); 

任何人都可以請幫我解決這個問題嗎?

+0

我檢查了你的代碼,它的工作正常,能夠將逗號(,)換成點(。),請詳細解釋實際需求。 – kulss

+0

'NSLog(@「%@」,strAfterReplacing)的輸出是什麼;'? –

回答

2

阿拉伯文本(。)中的逗號有一個unicode編號U+002C。它是阿拉伯數字小數點分隔符。不是逗號。英文逗號(,)有一個unicode號碼U+066B。因此替換失敗。

使用此٫而不是,在你stringByReplacingOccurrencesOfString

+1

ASCII逗號是'0x2C',所以我認爲它是阿拉伯語分隔符'U + 066B' – user3386109

+0

在strAfterReplacingComma和stringByReplacingOccurrencesOfString中使用的是兩個不同的字符。他們有兩個不同的unicode。所以替換不會發生。 U + 002C用於原始字符串。在stringByReplacingOccurrencesOfString中使用U + 066B。檢查這兩個鏈接之間的差異:http://www.unicode.org/charts/charindex.html –

+0

ASCII逗號0x2C是unicode U + 002C。這不是U + 006B –