我有一个可编辑的uitextview,其中用户输入俄语或英语。然后我将此文本保存为文件目录中的.txt文件,稍后再读。
以下是保存文字的部分
-(IBAction)saveText:(id)sender{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"testing.txt"];
[self.textBox.text writeToFile:path atomically:YES];
NSLog(path);
}
有一个单独的按钮可以在弹出框中显示此文本:
-(IBAction)readText:(id)sender{
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"testing.txt"];
NSError *error = nil;
myText = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error];
NSLog(@"myText: %@", myText);
self.textBox.text= myText;
}
在.h文件中使用此声明
NSString *myText;
如果我只输入英文,它可以正常工作,但如果我输入俄文字符,则无需保存/显示。
所以,说我输入“hello”它可以工作,但是如果我输入“一些俄语短语”来附加self.textBox.text它就不起作用。
如何使这个俄语(或UTF8 / charcode)兼容?
答案 0 :(得分:1)
writeToFile:atomically:
并将字符串写入默认编码
(无论那是什么,可能是MacRoman)。更好地使用
[self.textBox.text writeToFile:path
atomically:NO
encoding:NSUTF8StringEncoding
error:&error];
写入UTF-8编码的字符串。