Egy MySQL adatbázishoz szeretnék hozzáférni JSP segítségével. Ez megy. Ha azonban olyan mezőket kérdezek le, melyekben 'ő' és 'ű' betű található, akkor még véletlenül sem ezeket a betűket látom viszont, hanem a hullámos megfelelőjüket. Ha ilyen betűket tartalmazó adatokat szeretnék beszúrni, akkor csak kérdőjelek kerülnek be az adatbázisba is, visszaolvasáskor meg pláne.
Már egy csomó helyen keresgéltem a megoldást, kipróbáltam a pageEncoding, charsetbeállításait iso-8859-2-vel és utf-8-al is az összes lehetséges variációban, a MySQL adatbázisban is - semmi.
Adatok:
JSP file, amivel a lekérdezéseket végezném (oxygen az adatbázis neve):
Nekem segített a köv. megoldás, de csak akkor, ha konzol módú alkalmazásból próbálom:
A jdbc adatbázis url-ben meg kell adni néhány paramétert a következők szerint:
Problémám
Már egy csomó helyen keresgéltem a megoldást, kipróbáltam a pageEncoding, charsetbeállításait iso-8859-2-vel és utf-8-al is az összes lehetséges variációban, a MySQL adatbázisban is - semmi.
Adatok:
JSP file, amivel a lekérdezéseket végezném (oxygen az adatbázis neve):
<%@taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<%@taglib uri="http://java.sun.com/jstl/sql_rt" prefix="sql"%>
<sql:setDataSource var="datasource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/oxygen"
user="root" password=""/>
<sql:update dataSource="${datasource}">
INSERT INTO proba VALUES ("prőba")
</sql:update>
<sql:query var="proba" dataSource="${datasource}">
SELECT * FROM proba
</sql:query>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<title>Próba</title>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0">
<c:forEach items="${proba.rows}" var="row">
<tr>
<td>${row.mezo}</td>
</tr>
</c:forEach>
</table>
<p>őúűúáéŐŰ</p>
</body>
</html>
A végén a <p>-ben az ékezetes karaktereket csak próbából írtam be, azok tökéletesen megjelennek.
MySQL tábla:
`mezo` varchar(255) character set utf8 collate utf8_bin NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
MySQL szerver: MySQL 4.1.3b-beta-nt
Webszerver: Apache Tomcat/5.5.4
Oprendszer: WinXp SP1
Kérdés a szokásos:
Tudna valaki működőképes megoldást javasolni?
P][G
Megoldottam
P][G
Mysql - Tomcat - utf8
Én is ezzel szívok.
Nekem segített a köv. megoldás, de csak akkor, ha konzol módú alkalmazásból próbálom:
A jdbc adatbázis url-ben meg kell adni néhány paramétert a következők szerint:
jdbc:mysql://localhost:3306/forumdb?autoReconnect=true&useUnicode=true&characterEncoding=UTF8
Az a baj, hogy ez konzol módú programban működik, de Tomcat alatt, web alkalmazásban nem megy.
Tamás