zy305774606
2012-06-18 13:47 浏览 358
已采纳

javamail 发邮件个别字中文乱码

最近遇到一个很奇怪的问题,折腾我好久了
公司有自己的开发平台 发邮件是用Javamail写的
我在用公司封装的发邮件的方法 发送邮件过程中

陈玘的“玘”字不能正常显示,一直显示的是"陈?"
在正文和标题中都不能正常显示

所以想问问大家 这是什么原因,如果说公司封装的代码有问题 为什么其他的字都能正常就这一个字不正常,
数据库的字符集也没问题 是oracle ZHS16GBK

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

9条回答 默认 最新

  • 已采纳
    liruimin1211 liruimin1211 2012-06-18 17:15

    邮件发送编码问题,之前用gb2312测试了一下,发现确实变成了?号,现在改成UTF-8就能正常显示,现在项目中一般都是UTF-8编码,确实可以减少一些不必要的乱码,相对来说UTF-8库是比较全的
    [code="java"]
    private String xMailContentMimeType = "text/html; charset=utf-8";
    mBodyContent.setContent(xMailContent, xMailContentMimeType);
    [/code]

    点赞 评论 复制链接分享
  • iteye_7695 iteye_7695 2012-06-18 15:30

    检查一下发送时使用的字符集吧。最好是使用utf-8

    点赞 评论 复制链接分享
  • ezhouwenzi 鄂州蚊子 2012-06-18 16:01

    如果有的是汉字有的是乱码,就很有可能是字符集的问题,通常gb2312的汉字集合要多些(utf-8,gbk,gb2312三种字符集的汉字数目是不同的),也有可能是数据库中本身存的有问题,看看两个字中间是否有隐含字符

    点赞 评论 复制链接分享
  • zhaozhenfei500 zhaozhenfei500 2012-06-18 16:13

    个人感觉是字符集的问题,因为陈杞的那个Qi用很多输入法都打不出来,是个不常用的生辟字

    点赞 评论 复制链接分享
  • liruimin1211 liruimin1211 2012-06-18 17:13

    邮件发送编码问题,之前用gb2312测试了一下,发现确实变成了?号,现在改成UTF-8就能正常显示
    code="java"]
    private String xMailContentMimeType = "text/html; charset=utf-8";[
    mBodyContent.setContent(xMailContent, xMailContentMimeType);
    [/code]

    点赞 评论 复制链接分享
  • weixin_42315941 weixin_42315941 2012-06-19 09:12

    是不是在linux环境下?

    点赞 评论 复制链接分享
  • DJPLH DJPLH 2012-06-19 15:28

    字符集的问题吧,GBK好像就没有囧这个字,最好还是用UTF-8吧

    点赞 评论 复制链接分享
  • cao_zp cao_zp 2012-06-19 16:55

    GB 2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;同时收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个字符。
    GB 2312的出现,基本满足了汉字的计算机处理需要,它所收录的汉字已经覆盖中国大陆99.75%的使用频率。
    对于人名、古汉语等方面出现的罕用字,GB 2312不能处理,这导致了后来GBK及GB 18030汉字字符集的出现。

    点赞 评论 复制链接分享
  • ruanzy888888 ruanzy888888 2012-06-20 10:41

    用的是Apache的org.apache.commons.mail.SimpleEmail;
    SimpleEmail email = new SimpleEmail();
    email.setCharset("UTF-8");
    就行啦

    点赞 评论 复制链接分享