ios 개발에서 문자열 인코딩 문제가 발생했습니다. 이야기는 다음과 같습니다 :IOS에서 인코딩 사용 문자열
내가 그 가치에 대한 NSDictionary에를 생성 한 후 중국어 일부 값을 생성하고, 사전은 네트워크 요청에 대한 매개 변수로 사용됩니다
- (void)createActivity
{
NSString *actionTheme = titleF.text;
NSString *actionTitle = biaotiF.text;
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:actionTheme, @"actionTheme", actionTitle, @"actionTitle",nil];
[self networkrequest:];
}
그런 다음 몇 가지 작업 사전에 대해 수행되었습니다 :
사전을 NSString 유형으로 JSON 형태로 변환하십시오.
NSData* jsonData = [NSJSONSerialization dataWithJSONObject:param options:NSJSONWritingPrettyPrinted error:nil];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
문자열의 중국어 단어 때문에 문자열을 인코딩합니다.
NSString *urlEncodedString = [jsonString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
은 마지막으로 전체 URL은 위의 문자열로 생성했다 :
http://app.ic100.com/action/add?paramJson=%7B%22actionTheme%22%3A%22%E6%88%96%E8%80%85%E5%92%8C%E7%94%9F%E6%B4%BB%22%2C%22actionSite%22%3A%22%E5%8E%A (something like this)
내가 네트워크 요청에 대한 타사 "ASIFormDataRequest"를 사용하고, 나는 또한 StringEncoding 설정 :
ASIFormDataRequest *requstHttp = [[ASIFormDataRequest alloc] init];
[requstHttp setStringEncoding:NSUTF8StringEncoding];
....
을
모든 데이터가 서버로 성공적으로 전송되었지만 서버에서 이러한 데이터를 요청한 다음 아이폰에 표시합니다. 그것은 텍스트를 읽을 수 차례 : 나는 조심스럽게 내가 인코딩 또는 문자열을 디코딩, 단지 UTF8 사용한다 모든 장소를 확인했다
. 서버 쪽에서는 다른 인코딩도 사용되지 않습니다. 그리고 내 동료는 안드로이드 플랫폼에서 전송 된 데이터를 테스트했지만 아무런 문제가 없습니다. 그래서 나는 아마도 내가 몇 점을 놓친 것 같아.
조언이 있으십니까?
당신이 URL로 인코딩 JSON 문자열을 왜 그것은 내게 분명하지 않다. 또한 서버에서 데이터를 읽는 데 문제가있는 경우 데이터를 보내는 코드가 아닌 * 코드를 표시하십시오. – Droppy