2

値をUITextField入力する必要があります。変換する必要があり、. 以下のコードは私にとってはうまく機能しています(私のコード内のユニコード):unicodeUIButtonUILabel

NSString *str = [NSString stringWithUTF8String:"\u0D05"];
    m_CtrlLabel.text=str;  

私の問題は、4 桁の Unicode を から変換できないことUITextFieldです。つまり、 の中に入力0D05していますUITextField。変換してラベルに表示する必要があります。多くの組み合わせを試しましたが、運がありません。
前もって感謝します

4

3 に答える 3

4

0D05は16進数です。NSScanner16進文字列を整数に解析してからNSString、Unicode文字を含むものを作成するために使用できます。

NSString *hexString = yourInputField.text;

NSScanner *scanner = [NSScanner scannerWithString:hexString];
uint32_t unicodeInt;
if ([scanner scanHexInt:&unicodeInt]) {
    unicodeInt = OSSwapHostToLittleInt32(unicodeInt); // To make it byte-order safe
    NSString *unicodeString = [[NSString alloc] initWithBytes:&unicodeInt length:4 encoding:NSUTF32LittleEndianStringEncoding];
    yourOutputLabel.text = unicodeString;
} else {
    // Conversion failed, invalid input.
}

これは、Unicode> U + FFFFでも機能します1F34C(R. Martinho Fernandesのフィードバックに感謝します)。

于 2013-02-28T10:40:42.800 に答える
0

のフォントを変更してみてくださいUILable
実際には、すべての Unicode 出力を表示できないフォントもあります。
これは一度に私に起こりましJava Swingた!に文字列
を表示しようとしましたが、Unicode 文字列が に表示されませんでした。次に、表示される Unicode 値に フォントを変更しました。そのため、フォントを からまたは他のフォント に変更することをお勧めします。unicodeJLabelJLablel
Arial
Arial

お役に立てれば!

于 2013-03-01T05:02:05.427 に答える
0

問題は、入力がcharポインタでなければならないことです

NSString *str = [NSString stringWithUTF8String:[self.textField.text UTF8String]];
    m_CtrlLabel.text=str;  
于 2013-02-28T10:29:23.637 に答える