如何将iOS(objective-c)NSString值转换为字节值



如何将iOS(objective-c(NSString值转换为字节值?

JAVA使用.getBytes(),但我不知道如何在iOS上做到这一点。

uint8_t *dbytes = (uint8_t *)[Value bytes];

我本以为会是这样的…但我不想要。

您可以调用-[NSString UTF8String]将NSString更改为const char*

示例:const char *bytes = [Value UTF8String];

参考资料:苹果文档

目前尚不清楚您希望结果采用何种编码。Java的getBytes()使用依赖于平台的默认编码返回String字节,因此使用显式提供字符集的getBytes(charsetname)。您应该使用特定的编码进行通信,以避免互操作性问题。

在iOS端,您可以使用-[NSStrings dataUsingEncoding:]

例如

NSData *bytes = [@"Hello" dataUsingEncoding:NSUTF8StringEncoding];

首先,使用UTF8String翻译为unsigned long,然后使用0xff &翻译为Byte,如下所示:

NSString *str =@"xxx";
unsigned long red = strtoul([str UTF8String], 0, 16);
Byte bt = (Byte)(0xff & red);

最新更新