【问题标题】:how to decode UTF8 string in iphone如何在iphone中解码UTF8字符串
【发布时间】:2011-01-12 13:08:43
【问题描述】:

我想解码一个 UT8 编码的字符串。

输入字符串是“øæ-test-2.txt

解码后应该变成 "øæ-test-2.txt"

我发现许多 API 将 NSString 或 NSData 编码为 UT8 (NSUTF8StringEncoding),但无法找到解码方法。

到目前为止我所尝试的:-

NSString *str = [[NSString alloc] initWithUTF8String:[strToDecode cStringUsingEncoding:NSUTF8StringEncoding]];

[strToDecode stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]

[NSString stringWithUTF8String:[strToDecode cStringUsingEncoding:[NSString defaultCStringEncoding]]]

我尝试了相同的输入字符串,并在third party decoder 中得到了正确的输出。

但是没能成功

任何正确方向的提示都将受到高度赞赏。

【问题讨论】:

  • 向我们展示您的代码。向我们展示您到目前为止所做的工作。我们提供的任何解决方案都将使用这些标准 API,因此我们需要知道您哪里出了问题。
  • 如果你解决了这个问题,我也有同样的问题,请与我分享解决方案。
  • 对我来说,解决方案是 NSString *decodedString = [NSString stringWithUTF8String:[encodedString cStringUsingEncoding:NSISOLatin1StringEncoding]];

标签: iphone objective-c encoding


【解决方案1】:

我用this一个。

NSString *encoded_string = @"ü";
const char *ch = [encoded_string cStringUsingEncoding:NSISOLatin1StringEncoding];
NSString *decode_string = [[NSString alloc]initWithCString:ch encoding:NSUTF8StringEncoding];
NSLog(@"%@",decode_String)

【讨论】:

    【解决方案2】:
    [NSString stringWithUTF8String:]
    

    【讨论】:

    • 我已经编辑了我的问题。请检查我的输入并验证我提到的输出。
    • 你是如何得到输入字符串的?应该存储在 NSData 或 char* 中才能成功读取为 utf-8,否则会乱码。
    • 我以 xml 格式获得响应。 xml 解析器返回 Dict 中的值。这是字符串格式的。在这种情况下可以做什么?
    • 我尝试了相同的输入字符串,并且在第三方解码器中得到了正确的输出。所以我想字符串转换不会成为问题。 cafewebmaster.com/online_tools/utf_decode
    • 尝试检查xml解析器中是否有任何编码属性。
    猜你喜欢
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-31
    • 2022-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多