今天,项目里出现一个用java程序调用python脚本发送邮件时出现中文乱码问题如:
java采用的是用命令行调用python脚本,因为两边设置的编码格式都是utf-8的形式,还是出现问题
,修改python脚本将python脚本内的字符串返回给java程序,发现java端接收到的参数也是出现了中文乱码问题。
下图是通过debug模式看返回的参数,如图:
修改python脚本,增加 #-*- coding: utf-8 -*- ,
并且在发送邮件时设置编码格式,_charset='gb2312'
后续修改python脚本,不采用java传参的方式,本身定义一个字符串当作发送邮件的主题发现 ,正文内容都正常(java程序传过来的参数编码格式都正常),反倒是自己本身定义的字符串编码格式不正常。
初步推断虽然两边都是采用utf-8的编码格式,但是由于中间借助命令行的方式调用,而命令行的编码格式并非是utf-8,好像是"GBK"。所以导致出现这种问题。
最后附上一张常见乱码产生的原因
有说的不对的地方,请大佬指证 !