gpt4 book ai didi

javascript - 将 Javascript 字符串构建代码移植到 Objective C

转载 作者:行者123 更新时间:2023-11-28 09:49:23 25 4
gpt4 key购买 nike

我的 Javascript 代码如下:

var f = chr(50) + chr(0) + chr(1) + chr(64) + chr(24) + chr(0) + chr(0) + chr(1) + chr(159) + chr(13) + chr(0) + chr(0) + chr(224) + chr(7);

function chr(AsciiNum) {
return String.fromCharCode(AsciiNum);
}

console.log 将其输出为

2@
à

长度为14。

我正在尝试将其移植到 Objective C。我尝试执行以下操作:

NSString *f = [NSString stringWithFormat:@"%c%c%c%c%c%c%c%c%c%c%c%c%c%c",50, 0 ,1, 64 , 24 , 0 , 0 , 1, 159,  13 , 0 , 0 , 224 , 7];

但是在使用 NSLog 时我收到了与 javascript 代码不同的输出:

2@ü

我做错了什么?是字符集问题吗?

最佳答案

嗯,看来你的问题源于这样一个事实:NSString 的 ASCII 支持仅限于严格的 7 位 ASCII 编码,这意味着仅支持字符 0-127。您必须使用不同的数据类型来存储字符,该不同的数据类型是 unichar,它支持 2^15-1 正是因为它是 unsigned Short 。但是,您需要将其转换为以 Unicode 运行的 NSString category :

@interface NSString (MNNSStringWithUnichar)
+ (NSString *) stringWithUnichar: (unichar) value;
@end

@implementation NSString (MNNSStringWithUnichar)

+ (NSString *) stringWithUnichar:(unichar) value {
NSString *str = [NSString stringWithFormat: @"%C", value];
return str;
}
@end

或者简单地NSLog(@"%C", value);

关于javascript - 将 Javascript 字符串构建代码移植到 Objective C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11282131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com