简而言之,我有一个iOS客户端,可以转换NSData< 90>使用NSString
进入NSMacOSRomanStringEncoding
,如下所示:
int v = 0x90;
NSData *data = [NSData dataWithBytes:&v length:1];
NSString *s = [[NSString alloc] initWithData:data encoding:30]; //NSMacOSRomanStringEncoding
它将<90>
(NSData)转换为字符串ê
,即\xc3\xaa
;
像:
(lldb) mem read v
0x7b144210: 90 00 00 10 ab 44 b1 47 08 00 00 00 00 00 00 00 .....D.G........
0x7b144220: 90 00 00 00 00 00 00 10 07 00 00 00 00 00 00 00 ................
(lldb) po data
<90>
(lldb) po s
ê
现在我想在服务器端模拟这个逻辑,使用python,但我无法得到相同的结果。它只是将0x90
变为\x90
,并抛出错误,即使我指定mac-roman
编码,如:
s = bytearray('\x90', encoding='mac-roman') // throw exception
我不是python的专家,我不知道如何让它工作。有人可以帮忙吗?提前谢谢。