我搜索得很远,并且很惊讶没有这样的事情出现了。 我正在尝试发送一个音频文件电子邮件附件(使用MFMailComposeViewController),文件名中包含中文/汉字字符。奇怪的是当我在文件名中使用特定字符时,当我收到电子邮件时,它会成为一长串奇怪的字符。
使用“平成23年.m4a”这样的文件名,收到邮件时的附件名称会变成“平成23 ”/%1B%28B8%1B%24B7n%1B%28B25%1B% 24 ......“正是这个角色是”年“。如果我删除那个角色,一切都很好。那里可能还有另一个汉字/汉字可能导致同样的问题,但我不知道怎么办甚至开始解决这个问题......我一直在拔头发,所以希望有人可以帮我解决这个问题......
同样类似的问题是,对于某些电子邮件提供商(适用于gmail,雅虎,但不适用于像gmboy.com这样的东西),如果我在文件名中有日文字符,则它们无法显示并被替换为一个下划线标志。 (例如Testテスト.m4a变成了Test_.m4a)我觉得这可能与上面的问题有关。
这是我的代码......
/* 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];
当MFMailComposeViewController视图出现时,文件附件名称会显示正常,但在发送过程中,名称被搞砸了。
任何帮助都将非常感激!
答案 0 :(得分:0)
如果在主题字段中输入相同的文件名文本(以编程方式或通过编辑器UI)会发生什么?
如果可行,您应该使用电子邮件程序查看该电子邮件的标题,并查看该单词的编码方式。更好的是,发送一封包含来自其他电子邮件程序的附件和文件名的电子邮件,并调查它发送的电子邮件中的标题。
我最好的猜测是你需要使用rfc2047对字符串进行编码,它描述了如何在多部分电子邮件标题中嵌入非ASCII字符。太糟糕了,这不是为你做的!
答案 1 :(得分:0)
'audio / m4a'不是有效的mimeType。你在寻找'audio / mp4'吗?