<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 ="<?xml version=/"1.0/" encoding=/"utf-8/"?><AppSubscResult>" +<br>" <appId>elbert_app_dsc005</appId>" +<br>" <longId>wangwang101112347</longId>" +<br>" <time>1236235618357</time>" +<br>" <sign>a2e82a649b38ad10790160ec40e282af</sign>" +<br>" <result>Yes</result>" +<br>" <subscUserId>elb_aui_005</subscUserId>" +<br>" <appInstanceId>USER8B38B4C13EFE7276F75889E3123C4428</appInstanceId>" +<br>" <gmtStart>"+util.TimeHelp.getTimestamp_BeforeNDay(65)+" 00:00:00</gmtStart>" +<br>" <gmtEnd>"+util.TimeHelp.getTimestamp_BeforeNDay(7)+" 23:59:59</gmtEnd>" +<br>" <subscUrl>http://mall.alisoft.com/apps/subsc/subscDisplay!execute.jspa?appId=elbert_app_dsc005</subscUrl>" +<br>" <errorMessage>" +<br>"</errorMessage>" +<br>"</AppSubscResult>";</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>
分享到:
相关推荐
2. "xml读取异常Invalid byte 1 of 1-byte UTF-8 sequence-中文版的window下java的默认的编码为GBK.url":这个文件名暗示了解决XML文件读取异常的方法,尤其是在Windows环境下,Java默认的文件编码可能是GBK,这可能...
为了解决java.io.UTFDataFormatException异常,关键是确保处理的数据流始终以UTF-8编码。这意味着在写入数据到文件或从文件读取数据时,都应该明确指定使用UTF-8编码。在Java中,这可以通过使用java.nio.charset....
在你的问题中,错误提示是"java.io.CharConversionException: isHexDigit",这通常意味着在处理字符或字符串时,程序尝试将某个字符识别为十六进制数字,但该字符并不符合十六进制数字的规则。 `isHexDigit`是一个...
总结起来,当遇到"java.io.CharConversionException: isHexDigit"异常时,应该检查前端传递的URL参数是否正确编码,并确保在服务器端使用正确的解码方法和字符集。使用`encodeURI`或`encodeURIComponent`函数代替`...
在Java编程中,UTF-8编码是一个非常常见且广泛使用的字符编码格式,它能支持全球大部分语言的字符表示。然而,UTF-8有一个特殊特性,那就是它可以带有Byte Order Mark(BOM),这是一个特殊的字节序列,用于标识数据...
2. **外部存储空间不足**:用户在SD卡或设备的公共存储区域存放了大量文件,导致可用空间不足。 3. **缓存文件过大**:应用程序生成了大量的临时文件或缓存文件,但未及时清理,导致占用空间过多。 #### 三、解决...
Maven坐标:io.netty:netty-resolver-dns:4.1.65.Final; 标签:netty、resolver、dns、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化...
Java Keytool是一个强大的工具,主要用于管理和操作密钥对和数字证书,这些是Java安全框架中的核心元素。在Java Secure Socket Extension (JSSE) 中,它扮演着创建和管理KeyStore和TrustStore的角色,以实现SSL/TLS...
NULL 博文链接:https://wilian.iteye.com/blog/1992365
在Unicode标准中,每个字符可以使用多个字节来表示,例如UTF-8编码标准。 为什么会出现Invalid Multibyte Character Sequence 警告? 当我们在编程中使用非ASCII字符时,例如中文字符,如果编译器不支持多字节字符...
在使用Apache Tomcat服务器时,有时会遇到启动异常的情况,其中一种常见的错误是`java.util.zip.ZipException`。这个异常通常表明在处理ZIP或JAR文件时遇到了问题,可能是因为文件损坏、格式不正确或者无法打开。在...
Android异常详情介绍 ...2.HttpConnection没有连接池的概念,多少次请求就会建立多少个IO,在访问量巨大的情况下服务器的IO可能会耗尽。 3.通常是因为HttpClient访问单一实例的不同的线程或未关闭Input
tencentcloud-sdk-java-3.1.270
2. **使用适当的加密模式**:选择合适的加密模式也是解决问题的关键之一。例如,使用CBC模式时,需要确保数据长度是16字节的倍数;而在使用CTR模式时,则不需要考虑数据长度的问题。 #### 五、总结 通过本文的介绍...
在进行文件数据读取时,尤其是涉及到格式要求严格的整数数据,经常会遇到数据格式不正确而导致程序运行出错的问题。当从文件中读取数据时,如果数据格式不符合预期,例如期望的是整数却读取到了非整数的内容,就会抛...
标签:apache、httpcomponents、httpcore、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准...
"启动异常invalid constant type:15"是一种常见的Java异常,主要是由于Java类加载机制中的一个bug所引起的。在Java中,类加载器会将class文件加载到内存中,并将其转换成Java类对象。但是,在某些情况下,类加载器...