人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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


●質問者: er7
●カテゴリ:コンピュータ インターネット
✍キーワード:iPhoneアプリ Shift_JIS URL エンコード デコード
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● たまたん
●60ポイント

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

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...

◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ