NSString Unicode display
I want to look at the display of a number of Unicodes using a forLoop. However the compiler doesn't like "%x" or "%d" in the string to build a Unicode. Is there a work around?开发者_如何学编程
for (int k = 0; k < 16; k++){
lbl.text =[NSString stringWithFormat:@"\u00B%x", k ];// <-- incomplete universal character name \u00B
}
thanks
I'm not sure a fully understand what you're trying to achieve. For this answer, I assume that you want to generate the Unicode characters int the range between B0 and BF.
Your code doesn't work due to the \u
escape sequence (and not because of the %x
or %d
format specifiers). Just read the error message carefully. The code assumes that the %x
specifier will be substituted with a number first and that the escape sequence will be evaluated second. However, it happens the other way round: First the \u
sequence is evaluated by the compiler and an error thrown because it is invalid.
A better (and simpler) approach is the following code:
for (unichar ch = 0xB0; ch <= 0xBF; ch++){
lbl.text =[NSString stringWithFormat:@"%C", ch ];
}
This code directly puts a Unicode character into the string.
Use this method instead:
NSString stringWithUTF8String:
From the documentation here on the section Strings and Non-ASCII Characters:
Formatting Strings
精彩评论