1
  1. ユニコードでエンコードされた NSString があります。たとえば、内部的には のように表される عنم١٢ です"\U0639\U0646\U0645\U0661\U0662\U0663"
  2. この文字列を、基本的に LAMP サーバーであるリモート サーバーに送信しています。私はそのサーバーにアクセスできないことに注意してください
  3. サーバーは \U に問題があるようですが、\u では正常に動作します。
  4. 私はうまくいかなかった次のコードを試しました:

    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]];  
    }
4

1 に答える 1