1

我使用以下代码从我的 iPhone 应用程序向服务器发送数据:

- (void) sendGeneral:(NSString *) general{
    self.responseData = [NSMutableData data];

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:CBURL]];  
    [request setHTTPMethod:@"POST"];

    sendString = [[NSMutableString alloc] initWithString:general];

    requestData = [NSMutableData dataWithBytes:[sendString UTF8String] length:[sendString length]];
    [request setHTTPBody:requestData];

    [[NSURLConnection alloc] initWithRequest:request delegate:self];
}

只要我在数据中发送拉丁文,它就可以很好地发送,并且当我在其中发送希伯来语数据时,服务器会获得完整的字符串,它会在某些地方被剪切,并且服务器不会获取所有数据,在 Xcode 调试中我可以看到完整的我NSLog用来输出它的字符串:

{"会话":{"customer_id":-1,"client_time":"3","user_id":-1,"device_token":"3"},"错误":{"error_code":-1," error_message":"3"},"Successful":{"success_code":-1,"success_message":"3"},"Details":{"StartCallID":-1,"user_password":"כ","用户名":"ככ","StartDate":"3","EndDate":"3"},"Ptype":{"Ptype":3}}

有人可以帮忙吗?

4

1 回答 1

1

我不完全确定这会解决您的问题,是希伯来语 UTF8 还是 UTF16?我的猜测是你在数据中途被切断了?这意味着 sendString 长度仅返回 UTF16 字节数的一半。

这样做的更好方法是:


[request setHTTPBody:[general dataUsingEncoding:NSUTF8StringEncoding]];
// or if it's UTF16 
[request setHTTPBody:[general dataUsingEncoding: NSUnicodeStringEncoding]];
于 2012-02-12T22:23:41.530 回答