2016-11-14 80 views
0

次の文字列があります。emojiesと改行で適切にUILabelで表示したいと思います。また、drawInRectメソッドを使用して描画します。どのようにそれらを変換/エンコード/デコードすることができますか? ud83dのような絵文字のデコード文字列

任意のUnicode文字/絵文字や、\ nまたは&

私はこの質問をするために使用するために適切な用語を知らないことごめんなさいなどの特殊文字を表示する必要がありますので、この文字列は、実行時に変更されます。それで私はオンラインで答えを見つけるのが難しいです。このトピックに関する私の知識は非常に低いです。

\ ud83d \ ude02 \ ud83d \ ude02 \ ud83d \ ude02 \ ud83d \ ude02 \ ud83d \ ude02 \ ud83d \ ude05 \ ud83d \ ude06 \ u0db8 \ u0da0 \ u0d82 \ u0d91 \ u0d9a \ u0dca \ u0d9a \ nは#set_with_machan \ nkunuharapa NA \ N#は に従ってください@lankan_machan \ nhttps:

//www.instagram.com/lankan_machan絵文字、Unicode文字&新しい行を次のようになります。テキストをコードした後。 enter image description here

+1

私はあなたがエスケープされたユニコード文字をデコードしようとしていると思います。私はこれが助けになるかどうかは完全には分かっていないが、客観的にユニコード文字をエスケープする方法をすばやく探している - 私は[this]を見つけた(http://stackoverflow.com/questions/7860867/converting-escaped-utf8-characters- – DanZimm

+0

@DanZimmありがとうございました。私は用語を検索し、解決策を見つけました、少し編集しました。私は答えとしてそれを入れます – NSGodMode

答えて

0

私は解決策を見つけることができ、それを少し編集しました。このunはUnicode文字を完全にエスケープし、正しく表示します。新しい行も表示されます。ヘルプ@DanZimmに感謝します。

- (NSString*) unescapeUnicodeString2:(NSString*)string 
{ 
    NSString* esc1 = [string stringByReplacingOccurrencesOfString:@"\\u" withString:@"\\U"]; 
    NSString* esc2 = [esc1 stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""]; 
    NSString* quoted = [[@"\"" stringByAppendingString:esc2] stringByAppendingString:@"\""]; 
    NSData* data = [quoted dataUsingEncoding:NSUTF8StringEncoding]; 

    NSString* unesc = [NSPropertyListSerialization propertyListWithData:data options:NSPropertyListImmutable format:NULL error:NULL]; 
    assert([unesc isKindOfClass:[NSString class]]); 
    return unesc; 
} 

ソリューションは、私は方法の一つは廃止されたため、それを編集しなければならなかったhereを発見しました。

関連する問題