4

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

例如:我的词是:但是当我打印这个词时Üniversäl 它显示为: 。√únivers√§l

我该如何解决这个问题?

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

4

3 回答 3

2

金属变音符号的问题?

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

例如:

    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]);

以三种不同的编码将字符串“打印”到终端。其中一个对你来说合适吗?

于 2013-09-02T14:37:18.477 回答
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
于 2013-09-02T13:42:48.063 回答
0

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

我将 UILabel 拖放到我的情节提要上并将其附加到 label1。每件事对我来说都很好。我正在使用 Xcode 4.6 和 iOS 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;

}

在此处输入图像描述

于 2013-09-02T14:23:38.420 回答