在希伯来语中从iPhone发送JSON到IIS,结束前剪切字符串

时间:2012-02-12 20:12:46

标签: iphone json http post sbjson

我从我的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}}

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

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

更好的方法是:


[request setHTTPBody:[general dataUsingEncoding:NSUTF8StringEncoding]];
// or if it's UTF16 
[request setHTTPBody:[general dataUsingEncoding: NSUnicodeStringEncoding]];