首页 > 编程语言 >在Maven中出现javax.mail中文乱码问题解决记录

在Maven中出现javax.mail中文乱码问题解决记录

时间:2022-12-06 23:47:50浏览次数:37  
标签:Maven 中文 UTF 编码 乱码 mail 邮件

学习Java时,看廖雪峰大神文章使用了javax.mail来发送SMTP邮件。在加入中文时,发现收到的邮件里中文都是乱码。

按照一般经验,多半是编码的问题。然而在代码中,会涉及到编码的地方已经全部设置了,如:

BodyPart textPart = new MimeBodyPart();
String body = "<h1>Hello From Java Mail</h1>\n" + "<p>中文邮件</p>\n";;
textPart.setContent(body, "text/html;charset=utf-8");

在邮箱界面点击“显示邮件原文”,看到SMTP原始内容中,也确实是UTF-8编码:

image-20210820183553364

把相同的中文字符放在VS Code里,首先以UTF-8编辑,然后将其用各种编码重新打开,与邮件的乱码对比,发现收到的邮件实际上仍然是GBK编码(Windows系统默认编码)。

这就比较奇怪了,在网上找了一通也没有解决问题,转而从别的方面考虑。

最后注意到了用Maven编译时的一个警告:

[WARNING] File encoding has not been set, using platform encoding GBK, i.e. build is platform dependent!

原来是使用Maven时没有设置编码,导致生成的字节码中实际上保存的是系统默认的GBK编码。这样即使是邮件头中设置了UFT-8编码也无济于事。

解决方法是在pom.xml<properties>字段添加<project.build.sourceEncoding>指定UTF-8编码:

    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

总结:编程时需要严谨,WARNING的信息有时也很重要。

标签:Maven,中文,UTF,编码,乱码,mail,邮件
From: https://www.cnblogs.com/midoq/p/16961784.html

相关文章

  • Maven项目管理工具
    Maven项目管理工具1.Maven基础1.1Maven基础概念1.1.1仓库仓库:用于存储资源,包含各种jar包仓库分类:本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源远程......
  • Maven项目属性与版本管理
    1.属性1.1问题分析我们先来分析一下问题:前面在父工程中的dependencyManagement标签中对项目中所使用的jar包版本进行了统一的管理,但是如果在标签中有如下的内容:你会......
  • oracle 中文字符乱码 部分乱码 时间日期中文乱码
    解决方法如下:一、查看和修改oracle数据库字符集:selectuserenv('language')fromdual;二、修改pl/sqldeveloper的编码格式:在windows中创建一个名为“NLS_LANG”的系......
  • Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0
    tomcat上部署项目时报错,可以执行一次clean,然后再install就可以了然后在网上开始各种搜索,出现的解决办法一大堆,但是一个都不行。最后,才发现猫腻,编译错误原因是项目内的tar......
  • 安装jdk、idea、maven
    一、下载jdk根据自己项目需要下载jdkhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 无脑next安装 二、配置环境变量系......
  • maven使用第三方jar包
    先安装第三方jar包到本地maven库mvninstall:install-file-DgroupId=com.huawei-DartifactId=sparkfilter-Dversion=1.1.0-Dpackaging=jar-Dfile=/opt/bigdata-idea......
  • maven从本地上传jar到伺服库
    mvndeploy:deploy-file-DgroupId=com.a.b-DartifactId=abc-Dversion=0.0.1-SNAPSHOT-Dpackaging=jar-Dfile=D:\abc-0.0.1-SNAPSHOT.jar-DpomFile=D:\abc-0.0.1-SNAPS......
  • 关于jsp页面之间传值的中文乱码总结
    关于jsp页面之间传值的中文乱码总结最近在各位大哥的帮助下,终于解决了jsp页面之间的传值问题,总结如下:源代码,a.jsp往b.jsp传值:a.jsp页面内容:<%@pagelanguag......
  • RestTemplate中文乱码问题
    @ConfigurationpublicclassRestTemplateConfig{@BeanpublicRestTemplaterestTemplate(ClientHttpRequestFactoryfactory){RestTemplaterestT......
  • maven-dependency-plugin unpack 使用
    maven-dependency-plugin是一个比较有用,但是大家日常使用不是很多的插件,包含的功能解析依赖(显示依赖树,解析依赖的插件)copy依赖解压copy依赖(unpack比如需要部分jar......