如何将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);