簡體   English   中英

NSString將表情符號轉換為HTML實體

[英]NSString Convert Emojis to HTML Entities

我有一個iOS應用程序和PHP Web服務,它們接受用戶提交的“密碼”並對其進行哈希處理。

輸入表情符號時出現問題:

  • PHP將鹽散列為+😍

  • iOS散列了鹽+ [heart-for-eyes笑臉表情符號]

有沒有一種方法可以將iOS上的表情符號轉換為相應的HTML實體(如PHP會自動執行),以使生成的哈希值相同?

  • stringWithUTF8String不起作用
  • NSNonLossyASCIIStringEncoding將其轉換為“ \\ ud83d \\ ude0d”

這是一個解決方案,也許是內置的:

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:😍
逃脫的表情符號:&#128525

這是基於以下事實:轉義的表情符號是代碼點的十進制數字。 二進制代碼點是Unicode字符的UTF-32編碼。
不幸的是,我無法找到預先存在的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM