Как я могу получить греческие символы в моей базе данных, используя JSP - PullRequest
0 голосов
/ 23 февраля 2011

Я пытаюсь вставить некоторые греческие имена в базу данных, используя программу jsp. Тем не менее, результат в базе данных просто "????" вместо греческих символов. Если я попытаюсь вставить греческое имя, используя phpmyadmin или командную строку, то это не проблема. Поэтому я думаю, что в моем коде JSP есть некоторые проблемы. Вот простая часть моего кода:

попробовать

    {
    Statement stmt;
    ResultSet rs;
    Class.forName("com.mysql.jdbc.Driver");
    String url ="jdbc:mysql://localhost:3306/test?useEncoding=true&characterEncoding=UTF-8&autoReconnect=true";
    Connection con =(Connection) DriverManager.getConnection(url,"root", "");
    con.setCharacterEncoding("utf-8");
    stmt = (Statement) con.createStatement();
    stmt.executeQuery("SET NAMES 'UTF8'");
    stmt.executeQuery("SET CHARACTER SET 'UTF8'");        
    String greekname = "κωνσταντίνα";
    stmt.executeUpdate("INSERT INTO users(name,age) VALUES ('" + greekname + "','" + "44" +"')");
    con.close();
        }catch( Exception e ) {System.out.println("Problem during the connection with the database!");}

Надеюсь, у кого-то есть хорошее представление об этом!

Ответы [ 2 ]

0 голосов
/ 18 марта 2011

Ссылка в первом ответе решила проблему для меня. Это была строка подключения к база данных. Я использовал только

jdbc:mysql://localhost:3306/db_name

но добавление остальных решило проблему.

jdbc:mysql://localhost:3306/db_name?useUnicode=yes&characterEncoding=UTF-8

Спасибо.

Pat

0 голосов
/ 23 февраля 2011

Однако, результат в базе данных просто "????"вместо греческих символов

Таблица базы данных будет делать это, когда она извлекает символы, которые не охватываются кодировкой символов, для которой таблица базы данных получила указание хранить символы.Необходимо убедиться, что база данных и таблица созданы следующим образом:

CREATE DATABASE db_name CHARACTER SET utf8;
CREATE TABLE users (...) CHARACTER SET utf8;

См. Также:


Вне зависимости от конкретной проблемы, загрузка драйвера на каждый запрос не требуется.Достаточно всего один раз при запуске приложения.Кроме того, закрытие ресурсов должно происходить в блоке finally, иначе вы рискуете утечки ресурсов в случае исключений.Наконец, написание сырого кода Java в файле JSP также не является наилучшей практикой;)

...