从NSWindowsCP1252StringEncoding文本创建文本

时间:2014-01-05 05:16:58

标签: objective-c cocoa

我有下面的文字,

{\ RTF1 \ ANSI \ ansicpg1252 \ cocoartf1138 \ cocoasubrtf510 {\ fonttbl \ f0 \ fswiss \ fcharset0 Helvetica;} {\ colortbl; \ red255 \ green255 \ blue255;} \ margl1440 \ margr1440 \ vieww10800 \ viewh8400 \ viewkind0 \ PARD \ \ f0 \ fs24 \ cf0 \ '83}

在上面的文字中,\ '83对应于RTF文件格式,并且在NSWindowsCP1252StringEncoding中。现在我的问题是如何转换为

中的实际表示

83对应于NSWindowsCP1252StringEncoding中的字符串ƒ。

带编码的NSString字符串说使用api stringWithCString:编码。我在下面打电话给api。

NSString* str = [NSString stringWithCString:@"\'83" encoding:NSWindowsCP1252StringEncoding];

但它没有给出文字。请告诉我如何将值转换为特定文本。

此致 列宁

1 个答案:

答案 0 :(得分:1)

@"\'83"不是c字符串,因此您不应将其传递给stringWithCString:encoding:。即使是C字符串版本"\'83"也只是ascii字符,因此使用编码NSWdindowsCP1252StringEncoding将不会生成包含任何特殊字符的字符串。

相反,你需要一个带有非ascii值的c字符串,以便NSWindowsCP1252StringEncoding产生一个像'ƒ'这样的非ascii字符。

NSString *str = [NSString stringWithCString:"\x83" encoding:NSWindowsCP1252StringEncoding];