【问题标题】:How to convert NSString to bytes如何将 NSString 转换为字节
【发布时间】:2009-05-19 08:00:44
【问题描述】:

NSString *test = @"ABCDEFGHIJKLMNOPQRSTUVWXYZ";

如何将此字符串转换为字节?

【问题讨论】:

    标签: nsstring


    【解决方案1】:
    NSData *bytes = [test dataUsingEncoding:NSUTF8StringEncoding];
    

    【讨论】:

    • 让我解释一下什么是 NSData ?什么是 NSString.. 它与 string(in java) 有何不同?
    • 非常感谢您的帮助..by raju
    • 对于实际字节,uint8_t *rawBytes = [bytes bytes]
    【解决方案2】:

    你想要这样的东西吗:

    NSString *test=@"ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    NSUInteger bytes = [test lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
    NSLog(@"%i bytes", bytes);
    

    【讨论】:

      【解决方案3】:

      Swift 1.x

      extension String {
          var bytes: [Byte] {
              return Array(utf8)
          }
      }
      

      斯威夫特 2.1.1

      extension String {
          var bytes : [UInt8] {
              return Array(utf8)
          }
      }
      

      Xcode 9 • Swift 4 或更高版本

      extension StringProtocol {
          var bytes: [UInt8] { return .init(utf8) }
          var data: Data { return .init(utf8) }
      }
      

      Xcode 11 • Swift 5.1 或更高版本

      extension StringProtocol {
          var bytes: [UInt8] { .init(utf8) }
          var data: Data { .init(utf8) }
      }
      

      测试:

      "ABCDEFGHIJKLMNOPQRSTUVWXYZ".bytes  // [65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多