- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
什么类型的内容会导致此异常?
Caused by: java.io.UnsupportedEncodingException: cp932
at sun.nio.cs.StreamDecoder.forInputStreamReader(StreamDecoder.java:71)
at java.io.InputStreamReader.<init>(InputStreamReader.java:100)
at com.google.code.com.sun.mail.handlers.text_plain.getContent(text_plain.java:109)
at com.google.code.javax.activation.DataSourceDataContentHandler.getContent(DataHandler.java:803)
at com.google.code.javax.activation.DataHandler.getContent(DataHandler.java:550)
at com.google.code.javax.mail.internet.MimeBodyPart.getContent(MimeBodyPart.java:639)
为什么 OpenJDK 不能处理这种编码?
最佳答案
任何使用该字符集/编码的文本或基于文本的内容!
根据 Wikipedia , CP932 是 Shift JIS 的扩展......它是用于表示日语文本的字符集之一。
根据 this page , CP932 在“扩展编码集(包含在 lib/charsets.jar 中)”中。如果它不在您安装的 OpenJDK 中,请查找 yum/apt/任何提供额外 Java 字符集支持的 OpenJDK 包。对 CP932 的支持在 OpenJDK 中绝对可以在某处获得......
也有可能(尽管 IMO 不太可能)OpenJDK 无法将“cp932”识别为它所指的“MS932”和“windows-31j”的别名。
我检查了the code .
问题是 Java(不仅仅是 OpenJDK!)根本无法识别“cp932”别名。它无法识别的原因是别名是非标准。
此编码的官方(IANA 认可的)名称是“windows-31j”,Java 默认还支持以下别名:
如果您将“sun.nio.cs.map”系统属性(即使用“-D...”)设置为“Windows-31J/Shift_JIS”,那么 Java 也会识别“shift-jis”、“ms_kanji"、"x-sjis"和 "csShiftJIS"是等效的...但这应该只用于向后兼容未正确实现真正的 SHIFT-JIS 编码的旧(1.4.0 和更早版本)JDK . (此外,这并不能解决你的问题......)
那你能做什么?
关于java.io.UnsupportedEncodingException : cp932?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18245279/
所以我尝试从字符串中使用 getBytes,并且我读到,如果它遇到一个字符,它无法转换为真实数据,它将抛出 UnsupportedEncodingException。我添加了 java.io 来提供异
您好,我正在为一个应用程序开发电子邮件过滤器,该应用程序扫描邮件以确定它们是否是垃圾邮件,这是我的类(class): import java.io.BufferedReader; import jav
我正在尝试将字符串转换为 UTF-8 编码。但是编译失败,因为某些代码“抛出 UnsupportedEncodingException”。 String s = "1,2,3,4"; String s
我有一个读取用户输入然后写入文件的程序。在该程序读取该文件并执行一些基本的算术函数之后。然后结果显示在屏幕上供用户使用。之后我想清除该文件,因为它就像程序的缓存一样,不需要永久存储。 一切正常,我可以
如果我将 UTF-16 编码的文件传递给以下代码,那么我会得到 UnsupportedEncodingException 吗? try { BufferedReader br
什么类型的内容会导致此异常? Caused by: java.io.UnsupportedEncodingException: cp932 at sun.nio.cs.StreamDe
我从文档中了解到 UnsupportedEncodingException只有当我将错误的编码指定为 URLDecoder.decode(String, String) 方法的第二个参数时,才能抛出。
我有以下代码,需要通过 try-catch 或 throws 声明处理 UnsupportedEncodingException,但我不想使用它们。 @Test public void ser
我的实现如下: public String encodeString(String testString) { try { return URLEncoder.encode(t
我正在尝试在我的代码中使用 IDENTITY_H 字体编码: BaseFont courier = BaseFont.createFont(BaseFont.COURIER, BaseFont.ID
我正在尝试使用 PreferenceActivity(我的目标是 API 级别 8)向我的应用程序添加设置,我一开始只有一个复选框: 我的 PreferenceActivity 子类只
我有一些匈牙利文本,我希望使用 UCS2 编码对其进行编码 String stringEncoding = "UCS-2"; String contentHardCoded = new String(
当我的 servlet doPost 方法中有此代码时,一切都很好。 @Override protected void doPost(HttpServletRequest request, HttpS
我有一个 java 应用程序,它使用带有附件的电子邮件。有时我会看到这样的错误: java.io.UnsupportedEncodingException: X-iso88591 at sun.nio
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a mi
作为我的 J2EE 应用程序的电子邮件服务的一部分,我编码为 BASE64 body = MimeUtility.encodeText(orig_mail_body,"UTF-8","BASE64")
我正在使用专有 API 在 eclipse 中开发 Java 程序,它在运行时抛出以下异常: java.io.UnsupportedEncodingException: at java.lan
任何人都可以建议一个示例字符串(sampleString 的值)来获取 下面给出的代码片段中的UnsupportedEncodingException。 public static String de
我在 Grails 下运行的 Grails Web 应用程序中遇到了一个奇怪的问题: java.io.UnsupportedEncodingException 由于各种未知的编码字符串(例如 "ISO
我正在开发一个 Java 即时通讯应用程序。我尝试实现 Demonstrate the use of RSA Public-key system to exchange messages that a
我是一名优秀的程序员,十分优秀!