首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

解決 MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 編碼錯誤

     編輯:Java 綜合教學

現象

修改線上 XML 配置文件後重啟應用報錯:

MalformedByteSequenceException: Invalid byte 1 of 1-byte

原因:文件實際編碼非 UTF-8(可能是 GBK/ISO-8859-1),但 JVM 按 UTF-8 解析導致字節序列無效。

Vim 中修復步驟

  1. 打開文件:vim config.xml
  2. 嘗試設置編碼::set encoding=utf-8
  3. 保存時若報 寫入錯誤,轉換失敗,執行::set fenc=(清空文件編碼屬性)
  4. 再次保存::w
  5. 重啟應用驗證恢復正常。

原理解析

  • encoding:Vim 內部工作編碼。
  • fenc (fileencoding):文件當前磁盤編碼。若不為空,Vim 會嘗試從 fenc 轉換到 encoding,失敗則拒絕寫入。
  • :set fenc= 置空後,Vim 按 encoding 直接寫入字節,完成編碼「強制轉換」。

預防建議

  • 項目統一規範 UTF-8 編碼,IDE 設置 File Encodings = UTF-8。
  • 版本控制提交前用 file 或 enca 檢測編碼。
  • 構建腳本加入 native2ascii 或 Maven resources 插件強制過濾編碼。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved