tomcat 1字節的UTF-8序列的字節1無效


微信支付時, 命名返回支付成功, 但是成功后卻返回如下的錯誤, 

在測試環境都是沒有任何問題, 到客戶現場后, 可能客戶現場使用的4G網絡, 用微信支付時一直報這樣的錯誤

錯誤現象:

com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 1 字節的 UTF-8 序列的字節 1 無效。
        at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(UTF8Reader.java:701)
        at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(UTF8Reader.java:567)
        at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1793)
        at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.scanData(XMLEntityScanner.java:1306)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanCDATASection(XMLDocumentFragmentScanne
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFrag
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:118)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImp
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)

  錯誤截圖:

解決方案:

打開tomcat  bin目錄下的 catalina.bat文件, 在

set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%"

添加:

set "JAVA_OPTS=-server -Dfile.encoding=utf-8"

然后重啟tomcat

 

 但是這樣改, 有個弊端, 也就是可能會造成你的控制台亂碼, 那么就要修改你的返回流了,

如果你的HttpClientUtil.class做了返回流的編碼, 上面tomcat配置文件里面的那一行可以去掉(如果導致亂碼的話)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM