当前位置: 技术问答>java相关
关于发送邮件中的中文问题?
来源: 互联网 发布时间:2015-07-10
本文导语: 为什么带有中文的路径名得不到他的长度? 用getbyte(iso8859_1)后可以得到长度但路径中的中文名却变成了"????" 发送出去的附件名也是乱码! 如果不用getbyte("iso8859_1") 直接就发不出去! 那位高手能帮我? 在线等待! ...
为什么带有中文的路径名得不到他的长度?
用getbyte(iso8859_1)后可以得到长度但路径中的中文名却变成了"????"
发送出去的附件名也是乱码!
如果不用getbyte("iso8859_1")
直接就发不出去!
那位高手能帮我?
在线等待!
用getbyte(iso8859_1)后可以得到长度但路径中的中文名却变成了"????"
发送出去的附件名也是乱码!
如果不用getbyte("iso8859_1")
直接就发不出去!
那位高手能帮我?
在线等待!
|
我可以给你一段代码:自己好好看看,或许对你有用处:)
我使用servlet写的javamail:
public class ExaServlet extends HttpServlet
{
********public String getStr(String str)
{
try
{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("ISO8859-1");
String temp=new String(temp_t);
return temp;
}
catch(Exception e)
{}
return "null";
}
public void doPost(
HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{
********response.setContentType("text/html;charset=gb2312");
try{
Properties props = System.getProperties();
Session sendMailSession;
Transport transport;
sendMailSession = Session.getInstance(props, null);
props.put("mail.smtp.host", "smtp.bhr.com.cn");
Message newMessage = new MimeMessage(sendMailSession);
newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("xxx@xxx.com.cn"));
newMessage.setSentDate(new Date());
newMessage.setSubject("hgdjgh");
newMessage.setText(text);
**********((Part)newMessage).setContent(text, "text/html;charset=gb2312");
transport = sendMailSession.getTransport("smtp");
transport.send(newMessage);
}
catch(MessagingException m)
{
//out.println(m.toString());
}
这段代码有它的不完整性,但是你可以看看我给你标的带星好的地方!!!!特别注意静态的中文和传输种的中文是要进行不一样的处理,才能不出现乱吗!!
祝你好运!!
我使用servlet写的javamail:
public class ExaServlet extends HttpServlet
{
********public String getStr(String str)
{
try
{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("ISO8859-1");
String temp=new String(temp_t);
return temp;
}
catch(Exception e)
{}
return "null";
}
public void doPost(
HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{
********response.setContentType("text/html;charset=gb2312");
try{
Properties props = System.getProperties();
Session sendMailSession;
Transport transport;
sendMailSession = Session.getInstance(props, null);
props.put("mail.smtp.host", "smtp.bhr.com.cn");
Message newMessage = new MimeMessage(sendMailSession);
newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("xxx@xxx.com.cn"));
newMessage.setSentDate(new Date());
newMessage.setSubject("hgdjgh");
newMessage.setText(text);
**********((Part)newMessage).setContent(text, "text/html;charset=gb2312");
transport = sendMailSession.getTransport("smtp");
transport.send(newMessage);
}
catch(MessagingException m)
{
//out.println(m.toString());
}
这段代码有它的不完整性,但是你可以看看我给你标的带星好的地方!!!!特别注意静态的中文和传输种的中文是要进行不一样的处理,才能不出现乱吗!!
祝你好运!!
|
up