德语字符显示不正确

时间:2013-09-02 13:36:12

标签: iphone ios objective-c

我在显示字符时遇到问题:

Ex:我的话是:Üniversäl 但是当我打印这个单词时它显示为:√únivers√§l

如何解决此问题?

如此处所示它在提示中显示正确的单词: It display proper word in hint 但是当我打印字符串str1时,打印√únivers√§l

3 个答案:

答案 0 :(得分:2)

metal umlauts的问题?

这取决于您正在使用的输出通道的编码。

例如:

    NSString *universal = @"Üniversäl";

    NSLog(@"Üniversal: %@", universal);

    printf("%s\n", [universal cStringUsingEncoding:NSMacOSRomanStringEncoding]);
    printf("%s\n", [universal cStringUsingEncoding:NSISOLatin1StringEncoding]);
    printf("%s\n", [universal cStringUsingEncoding:NSUTF8StringEncoding]);

以三种不同的编码将字符串“打印”到终端。他们中的一个看起来对你好吗?

答案 1 :(得分:1)

我会尝试将您的编码更改为更多UTF8-ish

NSString *otherString = [[NSString alloc] initWithCString:"Üniversäl" encoding:NSMacOSRomanStringEncoding];
NSLog(@"%@",otherString); // outputs Üniversäl

NSString *string = [[NSString alloc] initWithCString:"Üniversäl" encoding:NSUTF8StringEncoding];
NSLog(@"%@",string);  // outputs Üniversäl

答案 2 :(得分:0)

这不是答案,但我想在我的评论中添加截图。

我将UILabel拖放到我的故事板并将其附加到label1。每件事对我来说都很好。我在iOS 6中使用Xcode 4.6。如果我错过了什么,请告诉我?

@interface v1ViewController : UIViewController

@property (nonatomic, retain) IBOutlet UILabel *label1;

@end

@implementation v1ViewController
@synthesize label1;

- (void)viewDidLoad
{
    [super viewDidLoad];


    NSArray *tempArray = [[NSArray alloc] initWithObjects:@"Üniversäl", nil];

   NSString *str2 = [tempArray objectAtIndex:0];
   //NSLog(@"str2: %s",[str2 UTF8String]);  // outputs Üniversäl
   NSLog(@"str2: %@",str2);  // outputs Üniversäl
   label1.text = str2;

}

enter image description here