0
我正在開發一個使用JSF 2.0(Mojarra 2.0.3)前端開發並部署在Glassfish v.3.0.1服務器上的項目。應用程序必須接受ISO-8859-2字符集並將數據寫入MySql數據庫。 問題是數據不在正確的字符集中。 請求的HTTP報頭具有屬性值:Glassfish JSF 2.0字符集問題
content-type: application/x-www-form-urlencoded; charset=UTF-8
的問題是不與反應,由於從數據庫中讀出時,數據可以被正確地顯示。此外,MySql連接URL應該是正確的,因爲它被設置爲latin2 collaction。我甚至嘗試創建custom filter,但沒有任何結果。
任何想法如何完成接受正確的字符集?
在此先感謝。
我收集你使用Facelets,如果您使用的是JSF 2.0。那麼,你在Facelet(XHTML)頁面的頂部是否有這個<?xml version =「1.0」encoding =「UTF-8」?>'。只需將** UTF-8 **更改爲** ISO-8859-2 **即可。此外,請檢查是否已將META標記定義爲「'。將其編碼更改爲ISO-8859-2。最後,檢查你的MySQL表的「DEFAULT CHARSET = ISO-8859-2」定義。如果它不是ISO-8859-2,則使用「ALTER TABLE」SQL命令更改它。應該是這樣的。 - :) – ChuongPham 2011-04-11 14:32:51
@ user463053謝謝您的回覆。不幸的是,我放棄了將編碼設置爲ISO-8859-2並切換到UTF-8編碼。是的,我使用的是Facelets,我的頁面有'<?xml version =「1.0」encoding =「ISO-8859-2」>'標籤。 MySql默認字符集設置爲latin2,connectionURL包含'useUnicode = true & characterEncoding = ISO8859_2 & characterSetResults = latin2'。但是,我會再試一次。 – Vladimir 2011-04-13 08:32:03
如果將所有內容都設置爲ISO-8859-2並且仍然不起作用,則可以隨時寫一個Filter(請參閱我的答案)以強制執行ISO-8859-2編碼。但是,由於可以在UTF-8中找到ISO-8859-2字符集,因此將其更改爲UTF-8應該適用於您,而UTF-8意味着您可以在未來爲其他語言添加其他字符集,而不會大驚小怪。 :) – ChuongPham 2011-04-19 18:16:46