2011-08-26 3 views
1

나는 수색을 광범위하게했으며 이런 일이 발생하지 않았다는 사실에 놀랐습니다. 파일 이름에 중국어/간자 문자가있는 오디오 파일 전자 메일 첨부 파일 (MFMailComposeViewController 사용)을 보내려고합니다. 이상한 일은 파일 이름에 특정 문자를 사용할 때 전자 메일을받을 때 이상한 문자가 길게 늘어나는 것입니다.MFMailComposeViewController 첨부 파일 이름에 외국 문자

파일 이름이 "平成 23 年 .m4a"인 경우 첨부 파일 이름이 "平成 23 "/ % 1B % 28B8 % 1B % 24B7n % 1B % 28B25 % 1B가됩니다. % 24 ... "이 문자를 지우는 것은"年 "입니다. 문자를 지우면 모든 것이 정상적으로 처리됩니다. 같은 문제가 발생할 수있는 다른 중국어/간지 문자가있을 수 있지만 잘 모르겠습니다. 이 문제를 해결하는 방법조차도 ... 나는 내 머리카락을 꺼내왔다. 누군가가 이걸 가지고 나를 도울 수 있기를 바란다 ...

또한 유사한 문제는 특정 이메일 제공 업체에서 (Gmail, yahoo , gmboy.com과 같은 것은 아닙니다.), 파일 이름에 일본어 문자가 있으면 표시되지 않고 밑줄 기호로 바뀝니다 (예 : Test test.m4a는 Test_.m4a) 이것이 위의 문제와 관련이 있다고 생각합니다. MFMailComposeViewController보기가 제공되지만 어떻게 든 보내는 과정 때

여기 내 코드의 ...

/* Set up the mail compose view and put in the body/attachment */ 
MFMailComposeViewController *mailComposer = [[[MFMailComposeViewController alloc] init] autorelease]; 

NSMutableDictionary *dict = [[self itemsToSend] objectAtIndex:0]; 
NSString *path = [dict objectForKey:@"exportFileAddress"]; 
NSData *myData = [NSData dataWithContentsOfFile:path]; 
NSString *fileName = @"平成23年.m4a"; 
[mailComposer addAttachmentData:myData mimeType:@"audio/m4a" fileName:fileName]; 


[mailComposer setMessageBody:@"Test email" isHTML:YES]; 

/* Set default subject */ 
[mailComposer setSubject:@"Email subject"]; 

mailComposer.mailComposeDelegate = self;   
[self presentModalViewController:mailComposer animated:YES]; 

파일 첨부 파일 이름이 잘 표시됩니다, 이름은 엉망이되었다.

어떤 도움을 주시면 대단히 감사하겠습니다!

+0

나에게 iOS 버그가있는 것 같습니다. – Akshay

+0

오, 나는 당신의 코멘트 Akshay을 눈치 채지 못했습니다. 의견을 보내 주셔서 감사합니다. 아래에서 말했듯이 기본 iOS 앱을 사용해 보았는데 같은 문제가 발생합니다. 그래서 네, API를 잘못 사용하는 것은 아닙니다 ... – kaka123

답변

0

제목 필드에 동일한 파일 이름 텍스트를 입력하면 (프로그래밍 방식으로 또는 작성자 UI를 통해) 어떻게됩니까?

작동하는 경우 전자 메일 프로그램을 사용하여 해당 전자 메일의 헤더를보고 해당 단어가 어떻게 인코딩되었는지 확인해야합니다. 더 나은 아직, 다른 이메일 프로그램에서 첨부 파일과 파일 이름과 함께 이메일을 보내고 그것이 보내는 이메일의 헤더를 조사하십시오.

rfc2047을 사용하여 문자열을 인코딩해야합니다. 비 ASCII 문자를 여러 부분 이메일 헤더에 포함 할 수있는 방법을 설명합니다. 너무 나쁜이 당신을 위해 완료되지 않습니다!

+0

안녕하세요 TomSwift 답장을 보내 주셔서 감사합니다! 제목 필드의 외국 문자는 정상적으로 작동하지만 표시되지 않는 이메일 제공자가 하나 있습니다. 그래서 그것은 제가 추측하고있는 것과 여전히 같은 문제입니다. 전자 메일 프로그램에서 단어가 어떻게 인코딩되었는지 어떻게 확인합니까? 감사합니다. 링크를 확인해 보겠습니다. – kaka123

+0

저는 기본 iOS 음성 메모 프로그램을 사용하여 음성 메모를 이메일로 보내려고했습니다. 나는 똑같은 이름을 보내기 위해 메모에 이름을 붙이고, 같은 것을 생각해 본다. 다른 이메일 프로그램에서 동일한 파일 이름을 보내려고했지만 잘 보였습니다. 이것이 왜 이메일 제공자가 아닌 MFMailComposeViewController 클래스 자체의 문제가 더 커야하는 이유입니까? – kaka123

+0

예를 들어 메시지를 읽을 때 "원본보기"를 선택하여 Gmail의 이메일 헤더를 볼 수 있습니다.rfc2047을 사용하여 첨부 된 파일 (이름)을 인코딩하는 iOS 전자 메일 클라이언트가없는 것처럼 들리므로 큰 문제는 미리 인코딩 된 파일 이름을 MFMailComposeViewController에 전달할 수 있는지 여부입니다. 좋은 테스트는 전자 메일 프로그램을 사용하여이 파일을 보내고 인코딩 된 헤더를 NSString 파일 이름에 복사하여 붙여 넣은 다음 보내주는 것입니다. – TomSwift

0

'audio/m4a'은 유효한 mimeType이 아닙니다. '오디오/mp4'를 찾고 계십니까?