Objective c 匈牙利字符编码

Objective c 匈牙利字符编码,objective-c,encoding,nsstring,Objective C,Encoding,Nsstring,我正在尝试将匈牙利字符转换为NSData。 使用PC865的代码页 这是代码 NSString *test = @"őű"; NSStringEncoding *coding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingDOSNordic); NSData *myData = [test dataUsingEncoding:coding allowLossyConversion:YES];

我正在尝试将匈牙利字符转换为NSData。 使用PC865的代码页

这是代码

NSString *test = @"őű";
NSStringEncoding *coding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingDOSNordic);
        NSData *myData = [test dataUsingEncoding:coding allowLossyConversion:YES];
        NSLog(@"my data %@", myData);
我收到的输出是我的数据


它们都是不同的字符,但为什么我在查看PC865表后收到相同的数据,而实际上它们都是错误的数据。

您的代码中有一个错误,
NSStringEncoding
是标量类型,而不是指向Objective-C对象的指针。因此必须

NSStringEncoding coding = ...
没有
*

但主要问题是代码页865(北欧语言) 不包含字符

ő = U+0151 = LATIN SMALL LETTER O WITH DOUBLE ACUTE ű = U+0171 = LATIN SMALL LETTER U WITH DOUBLE ACUTE
然后,您将得到搜索UTF-8编码的结果,这样可以工作,否则不行,因为这两个字母在编码时需要2个字节,而不是1!马丁,谢谢你的回答。但是,我将这些字符打印到打印机上,打印机只读取PC865代码页,因此我需要2个字符分别为94和81。可能是吗?@user774150:PC865中的字符94是“ö”,而不是“ő”。81字是“ü”,而不是“ű”。
NSStringEncoding coding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingDOSLatin2);