我有一个iOS应用程序和PHP Web服务,用户提交了“密码”并将其哈希。
当您输入表情符号时会出现问题:
PHP哈希盐+😍
iOS哈希+ [眼睛笑脸表情符号]
有没有办法将iOS上的表情符号转换为相应的HTML实体(就像PHP自动执行),以便生成的哈希值相同?
stringWithUTF8String
不起作用NSNonLossyASCIIStringEncoding
将其转换为“\ ud83d \ ude0d”答案 0 :(得分:1)
这是一个解决方案,也许有一个内置的:
NSString *emojiString = @"";
NSLog(@"emojiString: %@", emojiString);
NSData *codePointData = [emojiString dataUsingEncoding:NSUTF32LittleEndianStringEncoding];
u_int32_t codePoint = *((u_int32_t *)(codePointData.bytes));
NSString *escapedEmoji = [NSString stringWithFormat:@"&#%d", codePoint];
NSLog(@"escapedEmoji: %@", escapedEmoji);
NSLog output:
emojiString:
escapedEmoji:&#128525
这是基于转义的表情符号是代码点的十进制数这一事实。二进制代码点是unicode字符的UTF-32编码 不幸的是,我无法找到预先存在的解决方案。