Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 27.02.2017
Сообщений: 2

MS SQL Server + JDBC + Русский язык

07.05.2021, 10:42. Показов 1991. Ответов 0

Студворк — интернет-сервис помощи студентам
При выполнении запроса вместо русских символов появляются знаки вопроса.
Был написан тестовый код, для проверки методов работы с БД, но при попытке прочитать или записать в БД русские символы, появляются вопросительные знаки.
Пробовал добавлять в url
Java
1
useUnicode=true&characterEncoding=Cp1251
эффекта никакого.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String login = request.getParameter("login");
        String password = request.getParameter("password");
        OpTradingAgents opTradingAgents = new OpTradingAgents();
        ArrayList<TradingAgents> tradingAgent = opTradingAgents.getByLogin(login);
        PrintWriter pw = response.getWriter();
        response.setContentType("text/html");
        try {
            if (tradingAgent.size() > 0) {
                if (tradingAgent.get(0).getPassword().equals(password)) {
                    System.out.println(tradingAgent.get(0).getPassword());
                    pw.write("<h2>Login successful</h2>");
                    System.out.println(tradingAgent.get(0).getName());
                } else {
                    System.out.println("wrong pass");
                    pw.write("<h2>Wrong login or password</h2>");
                }
            } else {
                System.out.println("no user found");
                pw.write("<h2>Wrong login or password</h2>");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            pw.close();
        }
    }
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
public class OpTradingAgents {
    FileInputStream fis;
    Properties properties = new Properties();
    private String dbLogin;
    private String dbPassword;
    private String url;
 
    public OpTradingAgents() throws IOException {
        try {
            fis = new FileInputStream("G:\\Универ\\Диплом\\Program\\diplom\\src\\main\\resources\\config.properties");
            properties.load(fis);
 
            String dbType = properties.getProperty("dbType");
            String dbIp = properties.getProperty("dbIp");
            String dbPort = properties.getProperty("dbPort");
            String dbName = properties.getProperty("dbName");
            dbLogin = properties.getProperty("dbLogin");
            dbPassword = properties.getProperty("dbPassword");
            url = "jdbc:" + dbType + "://" + dbIp + ":" + dbPort + ";database=" + dbName +";useUnicode=true&amp;characterEncoding=Cp1251";
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            fis.close();
        }
    }
    public ArrayList<TradingAgents> getByLogin(String impLogin) {
        ArrayList<TradingAgents> tradingAgents = new ArrayList<>();
        String query = "SELECT * FROM TradingAgents WHERE login=?";
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            try (Connection con = DriverManager.getConnection(url, dbLogin, dbPassword)) {
                PreparedStatement ps = con.prepareStatement(query);
                ps.setString(1, impLogin);
                ResultSet rs = ps.executeQuery();
                while (rs.next()) {
                    int workerCode = rs.getInt(1);
                    String pasportId = rs.getString(2);
                    String name = rs.getString(3);
                    String surname = rs.getString(4);
                    String patronymic = rs.getString(5);
                    String login = rs.getString(6);
                    String password = rs.getString(7);
                    String phoneNumber = rs.getString(8);
                    String eMail = rs.getString(9);
                    TradingAgents tradingAgent = new TradingAgents(workerCode, pasportId, name, surname, patronymic, login, password, phoneNumber, eMail);
                    tradingAgents.add(tradingAgent);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return tradingAgents;
    }
}
Как же всё таки добиться русских символов?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.05.2021, 10:42
Ответы с готовыми решениями:

Русский язык и SQL Server 2000
Суть вопроса: как заставить SQL Server нормально работать с русским текстом, а не высылать вопросики? я на спец. страничке (ASP) ввожу...

Как изменить язык на русский в Microsoft SQL Server 2005?
как изменить язык на русский в Microsoft SQL Server 2005?

Ошибка в JDBC и SQL Server: Not associated with a trusted SQL Server connection.
Помогите please: нужно на Java подключиться к базе данных, администрируемой на MS SQL Server, вроде все пишу правильно а он выдает...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.05.2021, 10:42
Помогаю со студенческими работами здесь

MS SQL Server и JDBC в IntelliJ 14 IDEA
Пытаюсь подконнектиться к локальной БД через IntelliJ. Код примера взял отсюда, только там для PostgreSQL. Заменил: ... ...

Соединение с SQL Server 2000 используя JDBC
Всем привет Опишу ситуацию. У меня Windows XP поставил SQL Server 2000, сервер называется COMP есть JRE 6, JDK 6, Apache Tomcat...

Параллельный доступ к Miscrosoft SQL Server через JDBC
Добрый день! Нужно организовать параллельный доступ к Miscrosoft SQL Server через JDBC. Есть обычный, не параллельный класс DBConnection, в...

Проблема в SQL Server 2000 JDBC Driver Beta 2
Проблема с Microsift SQL Server 2000 JDBC Driver Beta 2 Version 2.2 Есть таблица- CREATE TABLE ( (10) COLLATE...

SQL & ACCESS XP vs Русский язык
Сообщение: Имеем VB6 sp5. Access XP. Windows 2000. Прога, которая обрабатывает БД, таблицы начерчены в Access. DAO 3.60. Названия...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru