簡體   English   中英

UTF-8無法通過JDBC在MySQL的Servlet中使用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM