2

4 つの言語をサポートしているアプリが 1 つあります。その時点で中国語のユーザー名でログインすると、次のような応答が表示されます..

[{"0":"41","intid":"41","1":"\u8a00\u3046", "varfirstname":"\u8a00\u3046" ,"2":"\u8a00\u3046" ,"varlastname":"\u8a00\u3046","3":"\u5730","varusername":"\u5730","4":"abc@gmail.com","varemailid":"abc@gmail .com","5":"qwert","varpassword":"qwert","6":"12345","varmobileno":"12345","7":"有効にする","mobileMessage":"有効にする","8":"","varphoneno":"","9":"有効にする","enumstatus":"有効にする","10":"2013-01-30","date_insert":"2013-01-30","11":"2013-01-30","date_edit":"2013-01-30","12":"1.38.28.36","varipaddress":"1.38. 28.36インチ}]

「varfirstname」を UITextfield Textに表示したい。しかし、 NSLog で印刷すると、テキストが表示されません。

NSLog(@"Text is === %@",textfname,text);

このテキストをデコードするにはどうすればよいですか? UITextfield または UILabel に表示します。

4

2 に答える 2

3

私はちょうどそれを検索し、有用な答えの1つを見つけましたhere

中国語と日本語の文字が ASCII 文字列エンコーディングで機能しないのは当然です。コードの重複を避けるために、Apple の方法で文字列をエスケープしようとする場合は、結果を Unicode 文字列として保存してください。次のエンコーディングのいずれかを使用します。

NSUTF8StringEncoding
NSUTF16StringEncoding
NSShiftJISStringEncoding (not Unicode, Japanese-specific)

アップデート

たとえば、以下のように中国語の文字列をデコードできます。

NSString * test = @"汉字马拉松是";
NSString* encodedString =[test stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSLog(@"====%@",encodedString);

出力は次のとおりです。

%E6%B1%89%E5%AD%97%E9%A9%AC%E6%8B%89%E6%9D%BE%E6%98%AF

次に、次のようにデコードします。

NSString* originalString =[encodedString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"====%@",originalString);

出力は次のとおりです。

汉字马拉松是

于 2013-01-31T05:54:05.053 に答える
1
NSString *abc = @"\u8a00\u3046";

NSLog(@" %@ " , [NSString stringWithUTF8String:[abc UTF8String]]);

json を使用する場合:

NSString *html = @"\u8a00\u3046";

NSData *jsonData = [html dataUsingEncoding:NSUTF8StringEncoding];

NSLog(@" %@ " , [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]);

それらはすべて「言う」と出力します。日本語だと思います

于 2013-01-31T06:14:06.433 に答える