4

私のアプリでは、添付された文字列を UIlabel に設定しようとすると、特殊文字が表示されません。この問題を解決するために私を助けてください。

ありがとう

結果

特殊文字

4

4 に答える 4

1

キーボードにユーロ文字がある場合は、それを直接使用できます。

[lLabel setText:@"€"];

それ以外の場合は、Unicode エスケープを使用します。

[lLabel setText:@"\u20AC"];

追加Foundation フレームワークと NSString クラスは、"¿euro¿" のようなエスケープ シーケンスを認識しないため、手動で置き換える必要があります。

NSString *s = @"abc ¿euro¿ def";
NSString *d = [s stringByReplacingOccurrencesOfString:@"¿euro¿" withString:@"\u20AC"];
于 2012-09-24T11:00:16.800 に答える
0

文字列を UTF-8 に変換してから、ラベル テキストに設定します。

[label setText:[NSString stringWithFormat:@"%s",[@"your_string" UTF8String]]];

[編集]

これをテストしたところ、文字列を UTF-8 に変換しなくても問題なく動作しました。

label.text = @"¿euro¿";

この出力を確認してください

サーバーの応答が UTF-8 に設定されていることを確認してください。修正されるはずです。UTF8でサーバーから文字列を取得していたのと同じ問題がありました - NSUTF8StringEncoding! 私はそれを変更し、他のすべてがうまくいきました!

たとえば、私は次のようにします:

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
request.defaultResponseEncoding = NSUTF8StringEncoding;
于 2012-09-24T10:45:53.887 に答える
0
//Conevrt the string utf-8 format

[yourstringvariabel UTF8String];
于 2012-09-24T10:49:34.427 に答える