我从我的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”}, “成功”:{ “success_code”: - 1, “success_message”: “3”}, “详细信息”:{ “StartCallID”: - 1, “USER_PASSWORD”:“כ ”, “USER_NAME”: “ככ”, “开始日期”: “3”, “结束日期”: “3”}, “p型”:{ “p型”:3}}
有人可以帮忙吗?
答案 0 :(得分:1)
我不完全确定这会解决你的问题,是希伯来语UTF8还是UTF16?我的猜测是你在数据中途被切断了吗?这意味着如果它的UTF16,sendString长度只返回字节数的一半。
更好的方法是:
[request setHTTPBody:[general dataUsingEncoding:NSUTF8StringEncoding]];
// or if it's UTF16
[request setHTTPBody:[general dataUsingEncoding: NSUnicodeStringEncoding]];