2011-04-12 283 views
1

親愛的全部, 當試圖從給定的文件中讀取「阿拉伯文本」時,我有一個奇怪的(愚蠢的)問題。讓我們假設我有一個名爲TEXT.TXT一個文本文件,該文件是UTF-8編碼,看起來像這樣(阿拉伯文字是從右至左):從UTF-8文本文件中讀取阿拉伯文字?

                :xxx xxxx xx xxx 

                  .xxx, xxxxxxx xxxxx xxx 

當我試圖通過閱讀TEXT.TXT在Xcode使用

UITextView *about; 
about.textAlignment = UITextAlignmentRight; 
NSString *textFilePath = [[NSBundle mainBundle] pathForResource:@"TEXT" ofType:@"txt"]; 
NSString *fileContents = [NSString stringWithContentsOfFile:textFilePath encoding:NSUTF8StringEncoding error:nil]; 
about.text = fileContents; 
NSLog(@"The text is: \n %@",about.text); 

這是我相信是正確的方式!然後,它顯示了iPhone模擬器和設備上,因爲這:

                xxx xxxx xx xxx: 

                  xxx, xxxxxxx xxxxx xxx. 

這是不是要顯示右側的文本!!!!!!!!!!!!!!什麼是「:」冒號和「」的問題。「時期在錯誤的一方。我對這個問題感到頭疼,因爲我一直試圖解決很長時間。所以請幫助!

最好的問候;

+0

沒有迴應!!!!!! – alazmi95 2011-04-15 20:10:28

回答

1

我不認爲有一種方法來自動強制從右到左佈局。但是,您可以製作一種能夠反轉文字的方法。這將讀取每個字符並將其放入可變字符串中。快速搜索想出了這個:

-(NSString *) reverseString 
{ 
    NSMutableString *reversedStr; 
    int len = [self length]; 

    // Auto released string 
    reversedStr = [NSMutableString stringWithCapacity:len];  

    // Probably woefully inefficient... 
    while (len > 0) 
    [reversedStr appendString: 
     [NSString stringWithFormat:@"%C", [self characterAtIndex:--len]]]; 

    return reversedStr; 
}