`
chensl
  • 浏览: 55841 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java添加UTF-7字符集支持(转)

 
阅读更多

这段时间在做PushServer时,需要对编码过的邮件标题及发信人进行解码,然而开发的时候发现Javamail无法对UTF-7等编码解码,会抛出UnsupportedEncodingException。查看过JDK中rt.jar的部分代码,也看过javamail的部分代码,总结原因如下:JDK本身并不支持UTF-7字符集。关于这个bug(传送门),很早之前就有人反馈过给SUN了,但SUN已经明确表示不会修复这个bug,所以要想支持UTF-7字符集就必须自己写对应的Charset。

        当然,秉承不重复发明轮子的精神,如果有人已经提供了这样的类的话我们就没必要再自己重新实现了。确实已经有人做了这样的事,jcharset(传送门)这个项目已经提供了UTF-7、UTF-7-OPTIONAL等字符集的实现方式,只需要下载jcharset.jar并将其放到${JAVA_HOME}/jre/lib/ext/下即可(这是SUN JRE的一个bug),这样就已经可以对UTF-7编码的字符串进行解码了。需要注意的是jcharset项目是在GPL许可下发布的,若只是需要添加UTF-7字符集的支持的话,可以考虑jutf7项目(传送门),这个项目是在MIT许可下发布的,这样做2次开发之类的都方便。若需要自己添加其他字符集的支持,可以参考jcharset、jutf7等项目。

 

 

 

原文 http://dhf.blog.163.com/blog/static/1190431592010035472797/

分享到:
评论
1 楼 chensl 2014-09-04  
说下最后解决办法吧,只是加了一个jutf7-1.0.0包就解决了,从sf上下载的,上面文章中提到的jar包,不确定是不是管用

相关推荐

    Java UTF-7 Charset support-开源

    字符集实现添加了对UTF-7的编码和解码支持(如RFC 2152中的两个变体),并为Java修改了UTF-7(RFC 3501)。 支持的UTF-7的两个变体在为Set O选择的编码(可选的直接字符)方面有所不同。

    彻底解决fckeditor(jsp版)上传中文图片乱码问题

    将请求的字符集编码设置成项目中的编码,在ConnectorServlet.java和SimpleUploaderServlet.java两个文件中的DiskFileUpload upload = new DiskFileUpload();后面加入upload.setHeaderEncoding(encoding);告诉...

    java中文乱码解决方案

    1.2 使用struts框架字符集不能设成gb2312,要改成utf-8。  2. 在struts.properties 添加: struts.devMode=false struts.enable.DynamicMethodInvocation=true struts.i18n.reload=true struts.ui.theme=simple ...

    基于ssh的java双人对战连连看

    在数据库建立一个utf-8字符集的叫css_lianliankan的数据库 不需要建表 配置hibernate.cfg.xml中数据库账号和密码 运行zhuyemian.java即可开始双人对战 程序描述 缺点:奇数个人登陆时会卡顿 优点:从单人游戏升级为...

    java开源包10

    Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换。拼音输出格式可以定制。 异步HTTP客户端开发包 HttpAsyncClient HttpAsyncClient 是一个异步的 HTTP 客户端开发包,基于 HttpCore NIO 和 HttpClient ...

    JAVA上百实例源码以及开源项目

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    java开源包1

    Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换。拼音输出格式可以定制。 异步HTTP客户端开发包 HttpAsyncClient HttpAsyncClient 是一个异步的 HTTP 客户端开发包,基于 HttpCore NIO 和 HttpClient ...

    JAVA上百实例源码以及开源项目源代码

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    java开源包7

    Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换。拼音输出格式可以定制。 异步HTTP客户端开发包 HttpAsyncClient HttpAsyncClient 是一个异步的 HTTP 客户端开发包,基于 HttpCore NIO 和 HttpClient ...

    java二分法源码-jstf:Java静态翻译框架(JSTF)

    java二分法源码Java 静态翻译框架 (JSTF) 这是 0.0.1 版本:它仍在进行中。 如果您有兴趣,请与我联系。 框架的目标 JSTF 最初是作为一个非常轻量级但完整的工具创建的,用于翻译 libGdx 多平台应用程序(Android 是...

    java开源包11

    Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换。拼音输出格式可以定制。 异步HTTP客户端开发包 HttpAsyncClient HttpAsyncClient 是一个异步的 HTTP 客户端开发包,基于 HttpCore NIO 和 HttpClient ...

    java开源包6

    Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换。拼音输出格式可以定制。 异步HTTP客户端开发包 HttpAsyncClient HttpAsyncClient 是一个异步的 HTTP 客户端开发包,基于 HttpCore NIO 和 HttpClient ...

    java开源包4

    Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换。拼音输出格式可以定制。 异步HTTP客户端开发包 HttpAsyncClient HttpAsyncClient 是一个异步的 HTTP 客户端开发包,基于 HttpCore NIO 和 HttpClient ...

    java开源包9

    Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换。拼音输出格式可以定制。 异步HTTP客户端开发包 HttpAsyncClient HttpAsyncClient 是一个异步的 HTTP 客户端开发包,基于 HttpCore NIO 和 HttpClient ...

    java开源包101

    Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换。拼音输出格式可以定制。 异步HTTP客户端开发包 HttpAsyncClient HttpAsyncClient 是一个异步的 HTTP 客户端开发包,基于 HttpCore NIO 和 HttpClient ...

    java开源包5

    Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换。拼音输出格式可以定制。 异步HTTP客户端开发包 HttpAsyncClient HttpAsyncClient 是一个异步的 HTTP 客户端开发包,基于 HttpCore NIO 和 HttpClient ...

    java开源包8

    Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换。拼音输出格式可以定制。 异步HTTP客户端开发包 HttpAsyncClient HttpAsyncClient 是一个异步的 HTTP 客户端开发包,基于 HttpCore NIO 和 HttpClient ...

    java开源包3

    Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换。拼音输出格式可以定制。 异步HTTP客户端开发包 HttpAsyncClient HttpAsyncClient 是一个异步的 HTTP 客户端开发包,基于 HttpCore NIO 和 HttpClient ...

    新版Android开发教程.rar

    程序可以采用 JAVA 开发,但是因为它的虚拟机 (Virtual Machine) Dalvik ,是将 JAVA 的 bytecode 转成 自 己的格式,回避掉需要付给 SUN 有关 JAVA 的授权费用。 对手机制造者的影响 � Android 是款开源的移动计算...

    Eclipse+Java+Swing实现图书管理系统(详细代码)附带详细安装教程

    2.新建db_library_swing数据库,字符集选择UTF-8 3.在db_library_swing库运行项目里的数据库文件 4.运行项目里的Library.java文件,显示登录窗口,用户名和密码都是admin 注意事项: 1.读者相关信息添加栏目“押金...

Global site tag (gtag.js) - Google Analytics