仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1005|回复: 18
打印 上一主题 下一主题

[学习教程] JAVA网页编程之Javamail中的罕见中文乱码成绩与办理办...

[复制链接]
飘飘悠悠 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:53:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
其实你不用Struts,spring这些工具,直接用jsp,servlet能够很方便地写出来,而且,可以根据个人的水平、爱好,有很多方案。而struts,spring这些工具的出来。办理|成绩|中文|中文乱码在利用javamailapi开辟邮件服务体系时,我们经常会碰着良多中文乱码成绩,上面就分离先容怎样办理这些成绩。

1.发送称号含中文的附件到邮件服务器,用其余邮件吸收程序吸收到的附件名显现为乱码

办理举措:
在挪用MimeBodyPart的setFileName()时利用Base64编码。比方:

  • BASE64Encoderenc=newBASE64Encoder();//该类位于jre/lib/rt.jar中
  • //fds为FileDataSource实例
  • mbp.setFileName("=?GBK?B?"+enc.encode((fds.getName()).getBytes())+"?=");


2.吸收邮件时,猎取某些邮件发送程序发送的email地点,发送地点显现为乱码

办理举措:
对含有中文的发送地点,利用MimeUtility.decodeTex办法,对其他则把地点从ISO8859_1编码转换成gbk编码,见下例

  • publicstaticStringgetFrom(Messagemsg){
  • Stringfrom="";
  • try{
  • if(msg.getFrom()[0]!=null)
  • from=msg.getFrom()[0].toString();
  • if(from.startsWith("=?GB")||from.startWith(“=?gb”)){
  • from=MimeUtility.decodeText(from);
  • }else{
  • from=StringUtil.toChinese(from);
  • }
  • }catch(Exceptione){
  • e.printStackTrace();
  • }
  • from=StringUtil.replaceStr(from,“<”,“<”);//replaceStr为字符串交换函数
  • from=StringUtil.replaceStr(from,">",">");
  • returnfrom;
  • }

  • ///////////////////StringUtil的toChinese办法//////////////////////////
  • publicstaticStringtoChinese(Stringstrvalue){
  • try{
  • if(strvalue==null)
  • returnnull;
  • else{
  • strvalue=newString(strvalue.getBytes("ISO8859_1"),"GBK");
  • returnstrvalue;
  • }
  • }catch(Exceptione){
  • returnnull;
  • }
  • }


3.吸收邮件时,猎取某个邮件的中文附件名,呈现乱码

办理举措:
关于用base64编码过的中文,则接纳base64解码,不然对附件名举行ISO8859_1到gbk的编码转换,比方:

  • Stringtemp=part.getFileName();//part为Part实例
  • if((temp.startsWith("=?GBK?B?")&&temp.endsWith("?="))
  • ||(temp.startsWith("=?gbk?b?")&&temp.endsWith("?="))){
  • temp=StringUtil.getFromBASE64(temp.substring(8,temp.indexOf("?=")-1));
  • }else{
  • temp=StringUtil.toChinese(temp);//该办法如前所叙
  • }

  • /////////////StringUtil的getFromBASE64办法/////////

  • publicstaticStringgetFromBASE64(Strings){
  • if(s==null)returnnull;
  • BASE64Decoderdecoder=newBASE64Decoder();
  • try{
  • byte[]b=decoder.decodeBuffer(s);
  • returnnewString(b);
  • }catch(Exceptione){
  • returnnull;
  • }
  • }



乱码成绩的调试步骤总结:

基础上在javamail中碰着的中文乱码成绩就这么多了,假如你的程序呈现了中文乱码,起首不要惊惶,可用多个其他的邮件发送或吸收程序举行考证,看是在哪一个环节呈现了成绩,然后再细心对比原文和乱码,挪用响应的编码解码办法就好了。


java比较简单,没有C++的烦琐,但学习时最好有C++为基础.与JSP和SQL起应用,功能强大.
活着的死人 该用户已被删除
沙发
发表于 2015-1-19 05:25:18 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
深爱那片海 该用户已被删除
板凳
发表于 2015-1-24 06:47:11 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
再见西城 该用户已被删除
地板
发表于 2015-1-24 17:51:22 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
蒙在股里 该用户已被删除
5#
发表于 2015-2-2 11:36:45 来自手机 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
只想知道 该用户已被删除
6#
发表于 2015-2-7 19:11:23 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
第二个灵魂 该用户已被删除
7#
发表于 2015-2-22 04:22:44 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
愤怒的大鸟 该用户已被删除
8#
发表于 2015-2-23 09:26:13 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
精灵巫婆 该用户已被删除
9#
发表于 2015-3-3 21:13:54 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
飘灵儿 该用户已被删除
10#
发表于 2015-3-6 08:20:13 | 只看该作者
是一种突破用户端机器环境和CPU
因胸联盟 该用户已被删除
11#
发表于 2015-3-7 18:14:10 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
简单生活 该用户已被删除
12#
发表于 2015-3-19 13:26:23 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
透明 该用户已被删除
13#
发表于 2015-3-19 23:50:50 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
14#
发表于 2015-3-29 17:20:43 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
山那边是海 该用户已被删除
15#
发表于 2015-4-1 06:10:57 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
金色的骷髅 该用户已被删除
16#
发表于 2015-4-10 07:23:01 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
不帅 该用户已被删除
17#
发表于 2015-4-21 06:06:08 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
小妖女 该用户已被删除
18#
发表于 2015-4-26 13:29:35 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
谁可相欹 该用户已被删除
19#
发表于 2015-4-27 08:07:14 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 02:14

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表