【问题标题】:iOS from UTF8 to ISO-8859-1iOS 从 UTF8 到 ISO-8859-1
【发布时间】:2017-07-11 03:59:59
【问题描述】:

在Java代码中,这段代码可以得到十六进制字符串"efbfbc"

new String((((char)-4 )+ "").getBytes("utf8"),"iso8859-1")

如何在 iOS Objective-C 中实现?

通过字节-4,得到十六进制字符串"efbfbc"

【问题讨论】:

标签: ios objective-c utf-8


【解决方案1】:
NSString *string = @"efbfbc";
char converted[([string length] + 1)];
NSString* str = [[NSString alloc]
                 initWithCString: converted encoding: NSISOLatin1StringEncoding];

NSLog(@"Your result string: %@",str);

我得到以下结果:

查看此AppleDoc 了解有关 intiWithCString 方法的更多信息。它会给你一个清晰的想法。

【讨论】:

  • 这应该如何工作? converted 是一个空的 char 数组。
  • 它将从您需要进行转换的字符串中获取输入。
  • 嗯? converted 如何在您的代码中填充(提示:不是)。
  • 您的代码不正确。您将初始化的 char 数组传递给 initWithCString 方法。你永远不会用任何字符填充converted。由于这个问题,您发布的屏幕截图显示 str 包含随机垃圾数据。
【解决方案2】:

我已经解决了这个问题。

unichar asciiChar = -4;
NSString *string  = [NSString stringWithCharacters:&asciiChar length:1];
 string = [NSString stringWithCString:[string UTF8String] encoding: NSISOLatin1StringEncoding];

现在,十六进制字符串是“efbfbc”

谢谢大家。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-19
    • 2010-11-03
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多