ios - dynamically create and display unicode strings

前端 未结 2 1768
再見小時候
再見小時候 2021-01-27 11:57

I have a UILabel in which I want to display a Unicode character. The following works:

label.text = @\"\\U000025A0\";

Now I want to

相关标签:
2条回答
  • 2021-01-27 12:14

    I had a same issue to display entypo Font special character, so I implemented my own EntypoStringCreator class (with some help from SO). Here are the method used to convert a unicode number to a nsstring:

    .h

    @interface EntypoStringCreator : NSObject
    
    +(NSString *)stringForIcon:(UTF32Char)char32;
    
    @end
    

    .m

    @implementation EntypoStringCreator
    
    
    +(NSString *)stringForIcon:(UTF32Char)char32
    {
        if ((char32 & 0xFFFF0000) != 0)
            return [self stringFromUTF32Char:char32];
        else
            return [self stringFromUTF16Char:(UTF16Char)(char32&0xFFFF)];
    }
    
    +(NSString *)stringFromUTF32Char:(UTF32Char)char32
    {
        char32 -= 0x10000;
        unichar highSurrogate = (unichar)(char32 >> 10); // leave the top 10 bits
        highSurrogate += 0xD800;
        unichar lowSurrogate = char32 & 0x3FF; // leave the low 10 bits
        lowSurrogate += 0xDC00;
        return [NSString stringWithCharacters:(unichar[]){highSurrogate, lowSurrogate} length:2];
    }
    
    +(NSString *)stringFromUTF16Char:(UTF16Char)char16
    {
        return [NSString stringWithCharacters:(unichar[]){char16} length:1];
    }
    
    
    @end
    
    0 讨论(0)
  • 2021-01-27 12:17

    try this ::

    NSString *myString = [NSString stringWithUTF8String:"0xF09F948A"]; <-- UTF-8 Hexadecimal Encoding
    
    myLabel.text = myString;
    
    0 讨论(0)
提交回复
热议问题