今天啓動tomcat時出現失敗,控制檯一閃而過,打開catalina的log發現錯誤指向了conf/server.xml,報錯信息以下:
-----------------------------------------------------------------------------------------------------------------------------------
警告: Catalina.start using conf/server.xml:
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 2 字節的 UTF-8 序列的字節 2 無效。
...
...
-----------------------------------------------------------------------------------------------------------------------------------
想起剛剛的確是修改了這個文件,遂比較了一下本文件的歷史版本,發現可疑之處在於追加的中文註釋,刪除掉,問題就解決了。
上述問題是解決了,可是咱們想添加中文註釋!有沒有辦法讓它支持中文呢?接下來試着把xml頭定義中的encoding="utf-8"改爲了encoding="gbk",而後再次加入中文註釋,啓動tomcat成功,應用也能夠正常訪問。
又有了一個新的疑問,utf-8不支持中文麼?答案固然是支持的,爲何encoding="utf-8"的時候會出錯,緣由在於xml頭指定了使用utf8來解釋這個文檔內容,可是當我使用編輯器編輯這個文檔的時候,輸入的中文卻不是utf-8編碼,而是ANSI編碼,這樣天然會出錯。解決起來也很容易,使用記事本打開xml文件,輸入中文註釋,而後選擇另存爲,在彈出的對話框中選擇utf-8編碼。或者使用EditPlus,Notepad++等編輯器打開xml文件,在相關的菜單中修改文件的編碼爲utf-8格式,而後保存,這樣
就能夠正常使用中文註釋了。
總結,xml頭定義中的encoding與xml文件自身的編碼不一致會致使文件解釋異常。apache