`
linkyou66
  • 浏览: 234902 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

编码问题之:java.io.UTFDataFormatException: Invalid byte 2 of 2-byte UTF-8 sequence.

 
阅读更多
<p>今天在编码的时候遇到如下问题</p>
<p>java.io.UTFDataFormatException: Invalid byte 2 of 2-byte UTF-8 sequence.</p>
<p>函数源码:</p>
<p>static InputStream String2InputStream(String str) throws Exception{<br> ByteArrayInputStream stream = new ByteArrayInputStream()<br> return stream;<br>}</p>
<p>实现的功能将一个xml字符串转换为Stream类型。</p>
<p>调用时的源码</p>
<p>String ExpXmlText ="&lt;?xml version=/"1.0/" encoding=/"utf-8/"?&gt;&lt;AppSubscResult&gt;" +<br>" &lt;appId&gt;elbert_app_dsc005&lt;/appId&gt;" +<br>" &lt;longId&gt;wangwang101112347&lt;/longId&gt;" +<br>" &lt;time&gt;1236235618357&lt;/time&gt;" +<br>" &lt;sign&gt;a2e82a649b38ad10790160ec40e282af&lt;/sign&gt;" +<br>" &lt;result&gt;Yes&lt;/result&gt;" +<br>" &lt;subscUserId&gt;elb_aui_005&lt;/subscUserId&gt;" +<br>" &lt;appInstanceId&gt;USER8B38B4C13EFE7276F75889E3123C4428&lt;/appInstanceId&gt;" +<br>" &lt;gmtStart&gt;"+util.TimeHelp.getTimestamp_BeforeNDay(65)+" 00:00:00&lt;/gmtStart&gt;" +<br>" &lt;gmtEnd&gt;"+util.TimeHelp.getTimestamp_BeforeNDay(7)+" 23:59:59&lt;/gmtEnd&gt;" +<br>" &lt;subscUrl&gt;http://mall.alisoft.com/apps/subsc/subscDisplay!execute.jspa?appId=elbert_app_dsc005&lt;/subscUrl&gt;" +<br>" &lt;errorMessage&gt;" +<br>"&lt;/errorMessage&gt;" +<br>"&lt;/AppSubscResult&gt;";</p>
<p>调用</p>
<p>String2InputStream(ExpXmlText );</p>
<p>结果报:</p>
<p>java.io.UTFDataFormatException: Invalid byte 2 of 2-byte UTF-8 sequence.</p>
<p>经查时由于声明的ExpXmlText 是UTF-8编码的,而转换的时候使用默认的编码是gbk的</p>
<p>查明原因后,将原函数修订如下</p>
<p>static InputStream String2InputStream(String str) throws Exception{<br> ByteArrayInputStream stream = new ByteArrayInputStream(str.getBytes("utf-8"));<br> return stream;<br>}</p>
<p>问题得到解决</p>
<p></p>
分享到:
评论

相关推荐

    解决Invalid byte 1 of 1-byte UTF-8 sequence

    2. "xml读取异常Invalid byte 1 of 1-byte UTF-8 sequence-中文版的window下java的默认的编码为GBK.url":这个文件名暗示了解决XML文件读取异常的方法,尤其是在Windows环境下,Java默认的文件编码可能是GBK,这可能...

    java.io.UTFDataFormatException(解决方案).md

    为了解决java.io.UTFDataFormatException异常,关键是确保处理的数据流始终以UTF-8编码。这意味着在写入数据到文件或从文件读取数据时,都应该明确指定使用UTF-8编码。在Java中,这可以通过使用java.nio.charset....

    java.io.CharConversionException: isHexDigit 出现错误的原因及其解决办法

    在你的问题中,错误提示是"java.io.CharConversionException: isHexDigit",这通常意味着在处理字符或字符串时,程序尝试将某个字符识别为十六进制数字,但该字符并不符合十六进制数字的规则。 `isHexDigit`是一个...

    url传值异常java.io.CharConversionException: isHexDigit

    总结起来,当遇到"java.io.CharConversionException: isHexDigit"异常时,应该检查前端传递的URL参数是否正确编码,并确保在服务器端使用正确的解码方法和字符集。使用`encodeURI`或`encodeURIComponent`函数代替`...

    Java解决UTF-8的BOM问题

    在Java编程中,UTF-8编码是一个非常常见且广泛使用的字符编码格式,它能支持全球大部分语言的字符表示。然而,UTF-8有一个特殊特性,那就是它可以带有Byte Order Mark(BOM),这是一个特殊的字节序列,用于标识数据...

    Caused by: android.system.ErrnoException: write failed: ENOSPC (

    2. **外部存储空间不足**:用户在SD卡或设备的公共存储区域存放了大量文件,导致可用空间不足。 3. **缓存文件过大**:应用程序生成了大量的临时文件或缓存文件,但未及时清理,导致占用空间过多。 #### 三、解决...

    netty-resolver-dns-4.1.65.Final-API文档-中英对照版.zip

    Maven坐标:io.netty:netty-resolver-dns:4.1.65.Final; 标签:netty、resolver、dns、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化...

    java keytool安全证书学习

    Java Keytool是一个强大的工具,主要用于管理和操作密钥对和数字证书,这些是Java安全框架中的核心元素。在Java Secure Socket Extension (JSSE) 中,它扮演着创建和管理KeyStore和TrustStore的角色,以实现SSL/TLS...

    org.xml.sax.SAXException: Invalid element

    NULL 博文链接:https://wilian.iteye.com/blog/1992365

    invalid multibyte character sequence 870告警1

    在Unicode标准中,每个字符可以使用多个字节来表示,例如UTF-8编码标准。 为什么会出现Invalid Multibyte Character Sequence 警告? 当我们在编程中使用非ASCII字符时,例如中文字符,如果编译器不支持多字节字符...

    tomcat启动报错:java.util.zip.ZipException的解决方法

    在使用Apache Tomcat服务器时,有时会遇到启动异常的情况,其中一种常见的错误是`java.util.zip.ZipException`。这个异常通常表明在处理ZIP或JAR文件时遇到了问题,可能是因为文件损坏、格式不正确或者无法打开。在...

    Android异常 java.lang.IllegalStateException解决方法

    Android异常详情介绍 ...2.HttpConnection没有连接池的概念,多少次请求就会建立多少个IO,在访问量巨大的情况下服务器的IO可能会耗尽。 3.通常是因为HttpClient访问单一实例的不同的线程或未关闭Input

    tencentcloud-sdk-java-3.1.270

    tencentcloud-sdk-java-3.1.270

    AES加密时抛出java.security.InvalidKeyException: Illegal key size or default parameter

    2. **使用适当的加密模式**:选择合适的加密模式也是解决问题的关键之一。例如,使用CBC模式时,需要确保数据长度是16字节的倍数;而在使用CTR模式时,则不需要考虑数据长度的问题。 #### 五、总结 通过本文的介绍...

    System.IO.InvalidDataException(解决方案).md

    在进行文件数据读取时,尤其是涉及到格式要求严格的整数数据,经常会遇到数据格式不正确而导致程序运行出错的问题。当从文件中读取数据时,如果数据格式不符合预期,例如期望的是整数却读取到了非整数的内容,就会抛...

    httpcore-4.4.13-API文档-中文版.zip

    标签:apache、httpcomponents、httpcore、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准...

    启动异常invalid constant type:15的解决方案

    "启动异常invalid constant type:15"是一种常见的Java异常,主要是由于Java类加载机制中的一个bug所引起的。在Java中,类加载器会将class文件加载到内存中,并将其转换成Java类对象。但是,在某些情况下,类加载器...

Global site tag (gtag.js) - Google Analytics