- ユニコードでエンコードされた NSString があります。たとえば、内部的には のように表される عنم١٢ です
"\U0639\U0646\U0645\U0661\U0662\U0663"
。 - この文字列を、基本的に LAMP サーバーであるリモート サーバーに送信しています。私はそのサーバーにアクセスできないことに注意してください。
- サーバーは \U に問題があるようですが、\u では正常に動作します。
私はうまくいかなかった次のコードを試しました:
NSString *resourceparams = [NSString stringWithFormat:@"%@",sender,nil]; NSLog(@"before replace resourceparams: %@", resourceparams); resourceparams = [resourceparams stringByReplacingOccurrencesOfString:@"\\U" withString:@"\\u"]; NSLog(@"after replace resourceparams: %@", resourceparams);
助言がありますか ?
編集: (このデータが Post リクエストの本文に送信される方法を追加する)
NSMutableData *postBody = [NSMutableData data];
[postBody appendData:[[NSString stringWithFormat:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
NSEnumerator * enumerator = [[paramDict allKeys] objectEnumerator];
NSString * dataKey = nil;
while (( dataKey = [enumerator nextObject]) ) {
id dataVal = [paramDict objectForKey: dataKey];
[postBody appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundry] dataUsingEncoding:NSUTF8StringEncoding]];
if([dataVal isKindOfClass: [NSData class]]) {
NSString* contentDisposition = [NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"file.ext\"\r\n", dataKey];
[postBody appendData: [contentDisposition dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:dataVal];
} else {
[postBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n", dataKey] dataUsingEncoding:NSUTF8StringEncoding]];
[postBody appendData:[dataVal dataUsingEncoding:NSUTF8StringEncoding]];
}