【问题标题】:How to convert a text string to hex string?如何将文本字符串转换为十六进制字符串?
【发布时间】:2016-06-09 08:20:21
【问题描述】:

假设我有一个文本字符串: “向我的小朋友问好”

一个函数应该返回十六进制值:

5361792048656c6c6f20746f204d79204c6974746c6520467269656e64

【问题讨论】:

  • 是正确的你所面临的错误..

标签: ios string hex


【解决方案1】:

斯威夫特 4、斯威夫特 3

let hex: String = "ABC".unicodeScalars.filter { $0.isASCII } .map { String(format: "%X", $0.value) } .joined() print(hex) // correctly yields 414243

【讨论】:

    【解决方案2】:

    你可以这样做,

    NSString *str = @"Say Hello to My Little Friend";
    NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
    
    NSLog(@"data %@",data);
    

    选择:data <53617920 48656c6c 6f20746f 204d7920 4c697474 6c652046 7269656e 64>

    斯威夫特:

     let string = "Say Hello to My Little Friend"
     let data = string.dataUsingEncoding(NSUTF8StringEncoding)
    

    斯威夫特 3:

     let string = "Say Hello to My Little Friend"
     let data = string.data(using: String.Encoding.utf8)
    

    【讨论】:

      【解决方案3】:

      无法用 swift 编写,但在 Objective-C 中,下面的代码可能就是您正在寻找的:

          NSString * str = @"Say Hello to My Little Friend";
      
          NSString * hexString = [NSString stringWithFormat:@"%@",
                               [NSData dataWithBytes:[str cStringUsingEncoding:NSUTF8StringEncoding]
                                              length:strlen([str cStringUsingEncoding:NSUTF8StringEncoding])]];
      
          for(NSString * toRemove in [NSArray arrayWithObjects:@"<", @">", @" ", nil])
              hexString = [hexString stringByReplacingOccurrencesOfString:toRemove withString:@""];
      
          NSLog(@"hexStr:%@", hexString);
      

      上面的代码给出了你给出的确切字符串:

      5361792048656c6c6f20746f204d79204c6974746c6520467269656e64

      希望它会有所帮助:)

      【讨论】:

        猜你喜欢
        • 2013-02-07
        • 1970-01-01
        • 2014-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-31
        • 2019-07-27
        相关资源
        最近更新 更多