私のプログラムは他の国のサーバーとインターフェイスし、外国文字を含むURLを定期的に処理する必要があります。æ
これは、、、、などのスカンジナビア文字を検討するまでは問題なく機能ø
しå
ます。URLを受け取ったら、次のようにデコードします。
-(NSString*)urlDECODE:(NSString*)string
{
NSString* s = [string stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
return (s)?s:string;
}
ただし、これではこれらの文字を正しくデコードできません。
filename: æøåa.rtf
input: %C3%83%C2%A6%C3%83%C2%B8a%C3%8C%C2%8Aa.rtf
output: æøaÌa.rtf
編集:これはエンコード機能です:
NSString * URLEncode(NSString * url)
{
NSString* out = nil;
@try
{
NSLog(@"BEFORE=%@",url);
out = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"AFTER=%@",out);
}
@catch (NSException * e)
{
NSLog(@"Encoding error: %@", e);
}
return out;
}