iPhoneアプリの開発をしています。Shift_JISの文字列がURLエンコード(パーセントエンコード?)された文字列を、デコードしたいのですが、どのように実装すればよいか教えていただけますか。

回答の条件
  • URL必須
  • 1人1回まで
  • 登録:
  • 終了:2009/07/30 14:10:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:tama-jp No.1

回答回数36ベストアンサー獲得回数11

ポイント60pt

文章が読み取りにくいのですが、

Shift_JIS文字列でURLエンコーディングされた文字列を、

iPhoneで読める文字列にデコードしたいということでしょうか?

それなら、

「NSString」クラスの「stringByReplacingPercentEscapesUsingEncoding:」では、いけませんでしょうか?

NSShiftJISStringEncodingを指定されるといいと思います。

例:

NSString *urlstr = [@"あいう" stringByAddingPercentEscapesUsingEncoding:NSShiftJISStringEncoding];

NSLog(@"NSShiftJISStringEncoding : %@",[urlstr stringByReplacingPercentEscapesUsingEncoding:NSShiftJISStringEncoding]);

[urlstr release];

もし、違っているのなら、以下をすべて試してください。

NSString *urlstr2;

// データ取得<省略>

NSLog(@"NSASCIIStringEncoding : %@",[urlstr2 stringByReplacingPercentEscapesUsingEncoding:NSASCIIStringEncoding]);
NSLog(@"NSNEXTSTEPStringEncoding : %@",[urlstr2 stringByReplacingPercentEscapesUsingEncoding:NSNEXTSTEPStringEncoding]);
NSLog(@"NSJapaneseEUCStringEncoding : %@",[urlstr2 stringByReplacingPercentEscapesUsingEncoding:NSJapaneseEUCStringEncoding]);
NSLog(@"NSUTF8StringEncoding : %@",[urlstr2 stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]);
NSLog(@"NSISOLatin1StringEncoding : %@",[urlstr2 stringByReplacingPercentEscapesUsingEncoding:NSISOLatin1StringEncoding]);
NSLog(@"NSSymbolStringEncoding : %@",[urlstr2 stringByReplacingPercentEscapesUsingEncoding:NSSymbolStringEncoding]);
NSLog(@"NSNonLossyASCIIStringEncoding : %@",[urlstr2 stringByReplacingPercentEscapesUsingEncoding:NSNonLossyASCIIStringEncoding]);
NSLog(@"NSShiftJISStringEncoding : %@",[urlstr2 stringByReplacingPercentEscapesUsingEncoding:NSShiftJISStringEncoding]);
NSLog(@"NSUnicodeStringEncoding : %@",[urlstr2 stringByReplacingPercentEscapesUsingEncoding:NSUnicodeStringEncoding]);
NSLog(@"NSWindowsCP1251StringEncoding : %@",[urlstr2 stringByReplacingPercentEscapesUsingEncoding:NSWindowsCP1251StringEncoding]);
NSLog(@"NSWindowsCP1252StringEncoding : %@",[urlstr2 stringByReplacingPercentEscapesUsingEncoding:NSWindowsCP1252StringEncoding]);
NSLog(@"NSWindowsCP1253StringEncoding : %@",[urlstr2 stringByReplacingPercentEscapesUsingEncoding:NSWindowsCP1253StringEncoding]);
NSLog(@"NSWindowsCP1254StringEncoding : %@",[urlstr2 stringByReplacingPercentEscapesUsingEncoding:NSWindowsCP1254StringEncoding]);
NSLog(@"NSWindowsCP1250StringEncoding : %@",[urlstr2 stringByReplacingPercentEscapesUsingEncoding:NSWindowsCP1250StringEncoding]);
NSLog(@"NSISO2022JPStringEncoding : %@",[urlstr2 stringByReplacingPercentEscapesUsingEncoding:NSISO2022JPStringEncoding]);
NSLog(@"NSMacOSRomanStringEncoding : %@",[urlstr2 stringByReplacingPercentEscapesUsingEncoding:NSMacOSRomanStringEncoding]);

[urlstr2 release];

参考:

http://www.oomori.com/cocoafw/Foundation/NSString/stringByReplsi...

id:er7

またまた、ありがとうございます。「Shift_JIS文字列でURLエンコーディングされた文字列を、iPhoneで読める文字列にデコードしたいということ」です。分かりにくい表現にも関わらず、回答していただきありがとうございました!

2009/07/23 19:52:39

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません