2012-09-10 5 views
0

유니 코드 텍스트와 관련된 정말 실망한 문제가 발생했습니다. 더 이상 해결할 수 없습니다. 다음 코드를 사용하여 영어 및 일본어 텍스트를 iPad의 서버에 저장합니다.iOS : 서버에 유니 코드 텍스트를 보낼 때의 문제점

__block ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL: [NSURL URLWithString:url]]; 
    request.defaultResponseEncoding = NSUTF8StringEncoding; 
    [request addRequestHeader:@"Content-Type" value:@"charset=UTF-8;"]; 

    NSData *data = [text dataUsingEncoding:NSUTF8StringEncoding]; 
    [request appendPostData:data]; 

이상한 것은 영어 (동일한 텍스트)에 텍스트를 서버에 잘 저장됩니다하지만 일본어가 아닙니다. 그들은 가비지 텍스트로 변환됩니다. 예를 들어, UTF8로 인코딩하면 "This is test"라는 텍스트가 "This is test"로 저장됩니다.이 텍스트는 "This is test"로 저장됩니다. "表çãºãã ‰ , ",", ","

아무도 나에게 잘못된 점을 지적 해 주실 수 있습니까? 감사.

Sending a form POST with ASIFormDataRequest 

To send POST data in a manner compatible with web page forms, use the included. 
ASIFormDataRequest subclass. ***Data is posted in ‘application/x-www-form-urlencoded’ 
format, or ‘multipart/form-data’ format when uploading binary data*** or files. Data in 
files is read as needed from disk, so POSTing large files is OK, as long as your 
web server is setup to handle them. 

그래서 내가 대신 ASIFormDataRequest의 ASIHTTPRequest를 사용하는 코드하지만 여전히 행운을 변환 [편집] ASIHTTPRequest documen t에서

!

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL: [NSURL URLWithString:url]]; 
    [request setDefaultResponseEncoding:NSUTF8StringEncoding]; 
    [request setRequestMethod:@"POST"]; 
    [request addRequestHeader:@"Content-Type" value:@"charset=UTF-8;"]; 

    NSData *data = [text dataUsingEncoding:NSUTF8StringEncoding]; 
    [request appendPostData:data]; 
+0

어떻게 텍스트를 서버에 저장하고 있습니까? 서버가 'UTF8'에서 텍스트를 수신했는지 확인 했습니까? – rckoenes

+1

[모든 프로그래머가 절대적으로 인코딩 및 문자 집합에 대해 알기 위해 적극적으로 필요한 기능] (http://kunststube.net/encoding/) – deceze

+0

서버 구성 방법, 저장 방법, 사용 방법 결과를 확인 하시겠습니까? – deceze

답변

2

다음 작업을! content-type에는 value = "text/json; charset = utf-8"이 있어야합니다. 그냥 charset 설정이 작동하지 않습니다!

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL: [NSURL URLWithString:url]]; 
    [request setDefaultResponseEncoding:NSUTF8StringEncoding]; 
    [request setRequestMethod:@"post"]; 
    [request addRequestHeader:@"content-type" value:@"text/json; charset=utf-8"];