我编写了一个servlet来下载包含中文字符的数据库记录。下载文件采用csv格式。 servlet响应内容类型设置为 "文本/ CSV;字符集= UTF-8"
当我在Excel中打开csv时,中文字符是不可读的。但是,如果我使用xcode编辑器打开相同的文件,它们会显示正常。
我无法在任何一个应用程序中找到任何char编码设置。
Excel和Xcode编辑器有什么区别?
答案 0 :(得分:0)
这可能是Excel处理CSV文件的限制。您可以使用txt
扩展程序
NSDictionary *dictionary = @{@"(nǐ hǎo) - inf" : @"你好",
@"(hǎojǐu bújiàn)" : @"好久不見 [好久不见]"};
NSString *documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
NSString *path = [documentsPath stringByAppendingPathComponent:@"test.txt"];
NSMutableString *string = [NSMutableString string];
for (NSString *key in dictionary) {
[string appendString:key];
[string appendString:@"\t"];
[string appendString:dictionary[key]];
[string appendString:@"\n"];
}
NSError *error;
BOOL success = [string writeToFile:path atomically:YES encoding:NSUTF16StringEncoding error:&error];
NSAssert(success, @"error = %@", error);
我能够在Excel中打开此文件。但我必须使用NSUTF16StringEncoding
,而不是NSUTF8StringEncoding
。