【问题标题】:NSData to NSString with åöäNSData 到 NSString 与 åöä
【发布时间】:2012-01-17 00:28:21
【问题描述】:

我正在使用 NSMutableURLRequest 下载网页,但在将网页放入 NSString 时遇到问题。

NSString *username = @"my_username";

NSString *password = @"my_password";

NSURL* url = [NSURL URLWithString:[NSString stringWithFormat:@"https://www.mypage.com/login.php?username=%@&password=%@", username, password]];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

NSString *returnPage = [NSString stringWithFormat:@"%.*s", [returnData length], [returnData bytes]];

除了 åäö 等特殊字符外,这工作正常。有没有更好的方法?

【问题讨论】:

    标签: objective-c utf-8 nsstring nsdata non-ascii-characters


    【解决方案1】:

    是的,请使用以下内容:

    NSString *returnPage = [[[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding] autorelease];
    

    使用 UTF8 而不是 ASCII。

    【讨论】:

    • 嗯,Xcode (4.2) 告诉我“ARC 禁止'autorelease' 的明确消息”,我应该离开自动释放并交叉手指吗? :) 我不太习惯 ARC、ObjC 和 Xcode...
    • 试过 NSString *returnPage = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];没用。执行后 returnPage 为 =/
    • 这意味着您使用了错误的编码...从您的 api 返回什么编码?
    • 好吧,这个 api 不是我的,它只是一个普通的网页。如何查看它使用的是哪种编码?
    猜你喜欢
    • 2011-03-02
    • 2011-08-31
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多