2013-03-01 40 views
1

我有一個使用UTF-8 Unicode字符集的MySql數據庫。在我的JSP中,當我有:ISO-8859-1,UTF-8和西班牙語口音

<meta http-equiv="Content-Type" content="text/html" charset="ISO-8859-1"> 

它會在db中正確插入西班牙語口音。然而,當我使用:

<meta http-equiv="Content-Type" content="text/html" charset="UTF-8"> 

它會插入,而不是加西亞

難道你們知道爲什麼GarcÃa使用UTF-8也不會插入口音?

+1

可能是http://stackoverflow.com/questions/488448/jsp-utf-encoding – 2013-03-01 04:19:39

+0

的副本確保它匹配JSP的內容類型 - 請參見[here](http://illegalargumentexception.blogspot.co.uk /2010/12/jsp-what-all-encoding-declarations-mean.html) – McDowell 2013-03-01 10:14:13

回答

0

由於我使用的春天,我使用CharacterEncodingFilter解決我的問題。因爲現在的瀏覽器一般不設置字符編碼,即使在HTML頁面中指定或形成

1

我不知道JSP,但是這通常是涉及到數據庫連接是如何從數據庫中讀取數據。在PHP中,以確保您正在閱讀的表(或數據庫)使用UTF-8編碼,您應該聲明的字符集的連接:

if(!$conexion->set_charset("utf8")) { 
$errsql['juego_de_caracteres']="Error al conectar al servidor mysql : ".mysqli_connect_error(); 

所以我想你可以做在Java中類似的事情。 你可以閱讀關於網絡中的字符編碼。此鏈接:http://www.joelonsoftware.com/articles/Unicode.html我覺得有用。另外,如果你的設置不正確,它的輸出可能是不可預測的,因爲我有時在Windows中看到ISO-8859-1的字符顯示正確,但它們肯定不會在所有系統中正確顯示。

+0

感謝您的回答。我找到了答案在這裏: http://stackoverflow.com/questions/5141403/utf-8-encoding-in-spring-mvc-problem-with-forms 這似乎是瀏覽器不設置正確的字符集所以Spring有一個強制它的過濾器 – Oscar 2013-03-01 05:42:14

0

有三件事情你必須設置

(1)告訴servlet引擎是什麼字符編碼是這是非常有用在源文件中使用

(2)告訴你想輸出

(3)告訴接收機在什麼字符編碼流。

你什麼元字符集servlet引擎標記只完成其中的最後一個,但實際上您可能不會發送以該編碼格式化的輸出流。

使用它來告訴servlet引擎如何讀取源文件,並且需要放入源文件編碼的實際字符集。只有在使用UTF- 8編輯。這可能是ISO-8859-1,如果你不採取一些痛苦,使其UTF-8:

<%@page contentType="text/html;charset=???????"%> 

,並以此來告訴它如何輸出流:

response.setCharacterEncoding("text/html; charset=UTF-8") 

在你的情況,因爲你知道數據庫中的數據是用UTF-8編碼的,所以最後這個設置可能會解決問題。

相關問題