无法将特殊字符传递给NSTask

时间:2014-05-22 20:20:14

标签: objective-c cocoa special-characters nstask nsstringencoding

在Cocoa中,我想将包含特殊字符的字符串作为参数传递给NSTask,但是任务没有得到正确的字符串。

NSString *city=@"Zürich"; // This is the string with a special character
[arguments addObject:[NSString stringWithFormat:@"-iptc:city=%@",city]];

NSTask *task=[NSTask new];
[task setLaunchPath:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"exiftool"]];
[arguments addObjectsFromArray:[NSArray arrayWithObjects:@"-L",@"-overwrite_original_in_place",@"filename", nil]];

[task setArguments:arguments];
[task setStandardOutput:[NSPipe pipe]];

[task launch];

这项任务并没有让苏黎世成为争论的焦点,而是ZuÌrich。知道如何正确传递特殊字符的字符串吗?我尝试过UTF8String但没有成功。感谢。

1 个答案:

答案 0 :(得分:0)

exiftool中的-L参数强制拉丁字符集。删除它使它正常工作。