[英]UTF-8 not working in Servlets with MySQL via JDBC
我在使用JDBC的MySQL數據庫連接的Tomcat服務器上運行Java Servlet。 如果可以使用以下代碼,則可以使用硬編碼的HTML代碼,但是來自數據庫的所有內容均顯示不正確。
response.setContentType("text/html;charset=UTF-8")
如果我刪除該行,則數據庫中的文本將正確顯示,但基本HTML不會正確顯示。
在數據庫和Eclipse中,所有內容均設置為UTF-8。
乍一看,好像您是在再次轉換數據庫中的文本一樣,一次又一次。
因此,首先檢查的是數據庫。 例如,“löl”的長度應為3。是否正確存儲了數據,請正確讀取。 正如@StanislavL所提到的,不僅數據庫需要正確的編碼,而且在MySQL中,還需要使用?useUnicode=yes&characterEncoding=UTF-8
告知通信的Java驅動程序編碼。 也許編寫或調試一小段代碼來讀取數據庫。
如果存儲正確,罪魁禍首可能是String.getBytes()
或new String(bytes)
。
在瀏覽器中檢查編碼或保存頁面。 使用諸如NotePadd ++或JEdit之類的程序員的編輯器檢查HTML。 這些工具允許使用不同的編碼重新加載,以查看編碼是什么。
應該第一頁是UTF-8,第二頁是Windows-1252或其他。
確保HTML源文本正確:在JSP中,您可以在ü
中使用“ \\ u00FC”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.