【发布时间】:2011-06-17 11:06:10
【问题描述】:
我在将 NSString 中的变音符号转换为 const char* 时遇到问题。
此方法解析单词的文本文件(逐行),将单词保存为 NSArray *results 中的字符串。然后转换为 const char tmpConstChars。例如,此 const char 保存一个 'ä',如 '√§'。如何从 NSString 转换为 const char * - 我认为这是正确的。
- (void)inputWordsByFile:(NSString *)path
{
NSError *error = [[NSError alloc] init];
NSString *content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
NSArray *results = [content componentsSeparatedByString:@"\n"];
NSMutableArray *words = [[NSMutableArray alloc] initWithArray:results];
[words removeLastObject];
for(int i=0; i<[words count]; i++){
const char *tmpConstChars = [[words objectAtIndex:i] UTF8String];
[self addWordToTree:tmpConstChars];
}
}
【问题讨论】:
-
不需要
alloc/initerror对象。 -
问题可能与您查看文本的方式有关...您确定您查看的是 UTF8 感知文本,还是配置为解释 UTF8 编码文本的文本?
-
Xcode 控制台是 UTF8 解释器吗?
-
NSLog(@"%s",tmpConstChars+2);会给我“zählen”的“§hlen”,它应该给我“hlen”。 -
什么是 NSLog(@"%s",tmpConstChars);给?
标签: objective-c unicode utf-8 character-encoding nsstring