Javamail ,将主题保存到数据库里面成这样了:=?utf-8?B?5oqK5Lq65rCR5b2T5oiQ5byx5pm677yB5ZGo55KH5LqL5Lu255qE6LCO6KiA5LiO?= =?utf-8?

时间:2022-09-24 08:47:05
=?utf-8?B?5oqK5Lq65rCR5b2T5oiQ5byx5pm677yB5ZGo55KH5LqL5Lu255qE6LCO6KiA5LiO?= =?utf-8?B?5LiR6KGM?= 

怎么将其恢复正常显示,有中文检体的,也有繁体的。

我用这个API
sun.misc.BASE64Decoder dec = new sun.misc.BASE64Decoder(); 

来处理更加乱码,有谁碰到过这种问题?

16 个解决方案

#1


是在 前台显示,后台数据库里面可以允许其保留乱码格式

#2


邮件协议里规定邮件有两种编码方式:一种是base64,一种是quoted-printable需要不同的解码方式。

#3


上面的兄弟,你觉得下面这个是什么编码方式?


=?utf-8?B?5oqK5Lq65rCR5b2T5oiQ5byx5pm677yB5ZGo55KH5LqL5Lu255qE6LCO6KiA5LiO?= =?utf-8?B?5LiR6KGM?= 

#4


sun.misc.BASE64Decoder dec = new sun.misc.BASE64Decoder(); 
你用了这个api,当然是BASE64编码。

#5


beyondii(十万个为什么),

你没看懂我的意思,

我现在存到数据库里面的数据是这样的:“=?utf-8?B?5oqK5Lq65rCR5b2T5oiQ5byx5pm677yB5ZGo55KH5LqL5Lu255qE6LCO6KiA5LiO?= =?utf-8?B?5LiR6KGM?= ”,
由邮件服务器里面导进去的,具体我也不知道什么编码,现在我想让它在前台正常显示出来,如果能在后台处理更好,如果不能的话,在前台看看能不能行?

#6


没人明白我的意思吗?

帮帮忙吧

#7


beyondii(十万个为什么),

你没看懂我的意思,

我现在已经存到数据库里面的数据是这样的:“=?utf-8?B?5oqK5Lq65rCR5b2T5oiQ5byx5pm677yB5ZGo55KH5LqL5Lu255qE6LCO6KiA5LiO?= =?utf-8?B?5LiR6KGM?= ”,
由邮件服务器里面导进去的,具体我也不知道什么编码(这里应该是utf-8),现在我想让它在前台页面上正常显示出来,如果能在后台处理更好,如果不能的话,在前台看看能不能行?

各位麻烦帮忙,多谢了

#8


javax.mail.internet.MimeUtil.DecodeText("=?utf-8?B?5oqK5Lq65rCR5b2T5oiQ5byx5pm677yB5ZGo55KH5LqL5Lu255qE6LCO6KiA5LiO?= =?utf-8?B?5LiR6KGM?=")

会得到实际内容

#9


org.apache.jasper.JasperException: Unable to compile class for JSP/usr/local/tomcat/work/m.....................

Class javax.mail.internet.MimeUtil.DecodeText not found in import.
import javax.mail.internet.MimeUtil.DecodeText;

是不是没加近来JAVAX包,是不是在SERVLET.JAR里面啊?

怎么会报错?

#10


存入数据库之前收到的邮件正常吗?

#11


littlecpu(嘿,哥们,你欠我分,快给咯):

问题解决是解决了,用javax.mail.internet.MimeUtility.decodeText()

中文的SUBJECT可以正常显示,

但是当我用这个类来处理 From,To,Cc的时候还是乱码?

为什么这样?



Rabbit8(剑.花.烟雨.江南) ,

存入数据库之前当然正常

#12


怎么没人来跟贴啊

#13


=?utf-8?B?5oqK5Lq65rCR5b2T5oiQ5byx5pm677yB5ZGo55KH5LqL5Lu255qE6LCO6KiA5LiO?= 
=?utf-8?B?5LiR6KGM?= 

的含义我来解释一下:
utf-8表示为utf-8字符集编码,B代表base64文本编码。以上是标题的特定编码格式。
为什么是2行呢?原因是标题太长的时候分行编码,方便传输时通过网关。

用javax.mail.internet.MimeUtility.decodeText()可以对以上进行解码,
但是From,To,Cc一般是不编码的,所以调用会出错,我想这个是javamail的bug,
你要判断一下,如果From,To,Cc包含 =?字段,那就肯定有编码,需要调用前面的函数,
没有则不用解码。

#14


eddie_lee(eddie) ,

多谢,

可是我 调用了前面的函数 还是显示乱码

#15


eddie_lee(eddie) 


From,To,Cc的内容是这个:

"gallium" group@gallium.com.hk, "=?big5?b?p8ugqnggqb4=?=" pcmo@ht.taisangind.com, "=?big5?b?s7kgtekgu1q=?=" chowhwai@gt.taisangind.com, "=?big5?b?vbigs7cguwy=?=" choistin@cf.taisangind.com, "=?big5?b?swagslytrpugxk4=?="/"gallium-china" llium@changan.net, "=?big5?b?v70gtlegv0e=?=" pmc@ht.taisangind.com, "=?big5?b?s68gvoqgvfcglsck0sclzq==?=" chenkfai@qt.taisangind.com, "=?big5?b?p2qgpu8gvgi=?=" nglc@cf.taisangind.com, "=?big5?b?p2ygslegrlo=?

这个是什么编码?有什么方法类可以来处理它到正常显示?

#16


eddie_lee(eddie) ,

我现在是判断了,用了那个方法来处理,但是还是显示乱码!
JAVAMAIL的BUG吗?

#1


是在 前台显示,后台数据库里面可以允许其保留乱码格式

#2


邮件协议里规定邮件有两种编码方式:一种是base64,一种是quoted-printable需要不同的解码方式。

#3


上面的兄弟,你觉得下面这个是什么编码方式?


=?utf-8?B?5oqK5Lq65rCR5b2T5oiQ5byx5pm677yB5ZGo55KH5LqL5Lu255qE6LCO6KiA5LiO?= =?utf-8?B?5LiR6KGM?= 

#4


sun.misc.BASE64Decoder dec = new sun.misc.BASE64Decoder(); 
你用了这个api,当然是BASE64编码。

#5


beyondii(十万个为什么),

你没看懂我的意思,

我现在存到数据库里面的数据是这样的:“=?utf-8?B?5oqK5Lq65rCR5b2T5oiQ5byx5pm677yB5ZGo55KH5LqL5Lu255qE6LCO6KiA5LiO?= =?utf-8?B?5LiR6KGM?= ”,
由邮件服务器里面导进去的,具体我也不知道什么编码,现在我想让它在前台正常显示出来,如果能在后台处理更好,如果不能的话,在前台看看能不能行?

#6


没人明白我的意思吗?

帮帮忙吧

#7


beyondii(十万个为什么),

你没看懂我的意思,

我现在已经存到数据库里面的数据是这样的:“=?utf-8?B?5oqK5Lq65rCR5b2T5oiQ5byx5pm677yB5ZGo55KH5LqL5Lu255qE6LCO6KiA5LiO?= =?utf-8?B?5LiR6KGM?= ”,
由邮件服务器里面导进去的,具体我也不知道什么编码(这里应该是utf-8),现在我想让它在前台页面上正常显示出来,如果能在后台处理更好,如果不能的话,在前台看看能不能行?

各位麻烦帮忙,多谢了

#8


javax.mail.internet.MimeUtil.DecodeText("=?utf-8?B?5oqK5Lq65rCR5b2T5oiQ5byx5pm677yB5ZGo55KH5LqL5Lu255qE6LCO6KiA5LiO?= =?utf-8?B?5LiR6KGM?=")

会得到实际内容

#9


org.apache.jasper.JasperException: Unable to compile class for JSP/usr/local/tomcat/work/m.....................

Class javax.mail.internet.MimeUtil.DecodeText not found in import.
import javax.mail.internet.MimeUtil.DecodeText;

是不是没加近来JAVAX包,是不是在SERVLET.JAR里面啊?

怎么会报错?

#10


存入数据库之前收到的邮件正常吗?

#11


littlecpu(嘿,哥们,你欠我分,快给咯):

问题解决是解决了,用javax.mail.internet.MimeUtility.decodeText()

中文的SUBJECT可以正常显示,

但是当我用这个类来处理 From,To,Cc的时候还是乱码?

为什么这样?



Rabbit8(剑.花.烟雨.江南) ,

存入数据库之前当然正常

#12


怎么没人来跟贴啊

#13


=?utf-8?B?5oqK5Lq65rCR5b2T5oiQ5byx5pm677yB5ZGo55KH5LqL5Lu255qE6LCO6KiA5LiO?= 
=?utf-8?B?5LiR6KGM?= 

的含义我来解释一下:
utf-8表示为utf-8字符集编码,B代表base64文本编码。以上是标题的特定编码格式。
为什么是2行呢?原因是标题太长的时候分行编码,方便传输时通过网关。

用javax.mail.internet.MimeUtility.decodeText()可以对以上进行解码,
但是From,To,Cc一般是不编码的,所以调用会出错,我想这个是javamail的bug,
你要判断一下,如果From,To,Cc包含 =?字段,那就肯定有编码,需要调用前面的函数,
没有则不用解码。

#14


eddie_lee(eddie) ,

多谢,

可是我 调用了前面的函数 还是显示乱码

#15


eddie_lee(eddie) 


From,To,Cc的内容是这个:

"gallium" group@gallium.com.hk, "=?big5?b?p8ugqnggqb4=?=" pcmo@ht.taisangind.com, "=?big5?b?s7kgtekgu1q=?=" chowhwai@gt.taisangind.com, "=?big5?b?vbigs7cguwy=?=" choistin@cf.taisangind.com, "=?big5?b?swagslytrpugxk4=?="/"gallium-china" llium@changan.net, "=?big5?b?v70gtlegv0e=?=" pmc@ht.taisangind.com, "=?big5?b?s68gvoqgvfcglsck0sclzq==?=" chenkfai@qt.taisangind.com, "=?big5?b?p2qgpu8gvgi=?=" nglc@cf.taisangind.com, "=?big5?b?p2ygslegrlo=?

这个是什么编码?有什么方法类可以来处理它到正常显示?

#16


eddie_lee(eddie) ,

我现在是判断了,用了那个方法来处理,但是还是显示乱码!
JAVAMAIL的BUG吗?