powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
25 сообщений из 88, страница 1 из 4
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39331898
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребят, помогите. Наверное проблема уже заезженная, но не могу решить.

Есть properties файл (в UTF-8), в нем написано "Мая ела кашу ложкой".
Мне нужно прочитать эту надпись, сконкатенировать к ней дату "21.10.2016" и записать в БД кодировка которой cp1251.

Вот как я читаю и конвертирую:
Код: java
1.
comment = new String(AppProp.getProperty("db.comment").getBytes("Cp1251"));


в результате в бд крякозябры. =(

Вот не работает:
Код: java
1.
comment = new String(AppProp.getProperty("db.comment").getBytes("ISO8859-1"));


Так работает на одной машине (т.е. в БД пишутся не крякозябры), но не работает на другой машине ().

и вот еще вариант, который пишет в бд крякозябры:
Код: java
1.
2.
3.
comment = new String(AppProp.getProperty("db.comment"));
byte[] bytesInUTF8 = comment.getBytes("UTF-8");
comment = new String(bytesInUTF8, "Cp1251"); 



Помогите советом, как прочитать строку и записать ее в БД кодировка которой 1251. Заранее спасибо за советы и помощь.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39331899
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из Java кодировки (UTF-8) в кодировку БД должен сам JDBC драйвер конвертировать. Если он конечно не криво настроен

Т.ч. ничего руками конвертировать не нужно.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39331904
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
так
Код: java
1.
comment = new String(AppProp.getProperty("db.comment"));


тоже не работает.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39331905
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не верю ( C ) Станиславский

И какую ошибку выдает? Что такое AppProp? Как Вы его считываете из внешнего файла
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39331907
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,

Класс, который читает файл. В нем метод:

Код: 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.
public static String getProperty(String key) throws IOException {
        if (properties == null || properties.size() == 0) {
            String mainClassLocation = FilenameUtils.getFullPath(App.class.getProtectionDomain().getCodeSource().getLocation().getPath());
            String propertiesFileFullPath = mainClassLocation + "app.properties";
      
            InputStream fis = null;

                fis = new FileInputStream(propertiesFileFullPath);

            Properties prop = new Properties();

                prop.load(fis);

            for (String k : prop.stringPropertyNames()) {
                if (properties == null)
                    properties = new HashMap<String, String>();
                String value = prop.getProperty(k);
                properties.put(k, value);
            }
        }
        if (properties.containsKey(key))
            return properties.get(key);
        else
            return null;
    }
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39332010
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12 InputStream fis = null;
fis = new FileInputStream(propertiesFileFullPath);

Properties prop = new Properties();

prop.load(fis);

AFAIK
Заменить InputStream на Reader и указать правильную кодировку входных данных.

https://docs.oracle.com/javase/7/docs/api/java/util/Properties.html#load(java.io.Reader)
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39332032
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevИз Java кодировки (UTF-8)
Это бессмысленное утверждение, у строки нет кодировки. Кодировка есть у байтов, а строка - это набор символов. Возможно вы говорите про коды символов (числовое значение char), но это к заданному вопросу не относится, так как символы после декодирования содержимого файла и создания строки уже кривые.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333307
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,

Спасибо.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333443
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrei TLeonid KudryavtsevИз Java кодировки (UTF-8)
Это бессмысленное утверждение, у строки нет кодировки.
Если Вы не видите в чем-то смысла, значит одно из трех:
- смысла там нет
- Вы не смогли его понять
- Истина где-то рядом (C) авторы X-Files

Человек немного ошибся, обычно кодировка строки символов в памяти jvm, не UTF-8, хотя и Unicode :).

2TC: В связи с чем, файл properties можно прочесть указав (явно или не очень), что он в кодировке UTF-8, и тем самым он будет переведен в кодировку jvm. И дальше jdbc драйверу можно будет указать в какой кодировке работает сеанс связи с СУБД (хотя он скорее всего и без вмешательства в курсе). Дальше все заработает само.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333470
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Арсеньев,

Чувак, ты странный.
Сергей Арсеньевобычно кодировка строки символов в памяти jvm
Специально для тебя еще раз:
Andrei TУ строки нет кодировки. Кодировка есть у байтов, а строка - это набор символов. Возможно вы говорите про коды символов (числовое значение char), но это к заданному вопросу не относится, так как символы после декодирования содержимого файла и создания строки уже кривые.
Сергей Арсеньевфайл properties можно прочесть указав (явно или не очень), что он в кодировке UTF-8, и тем самым он будет переведен в кодировку jvm
1) Файлы .properties по умолчанию читаются в ISO-8859-1.
2) Кодировки у JVM нет, по крайней мере в области обсуждаемого вопроса. Есть кодировка строковых литералов из текста программы, но это здесь ни при чем.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333475
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrei TСпециально для тебя еще раз
Повторение глупости умнее не делает.
У байта нет кодировки. Это всего лишь несколько битов не больше не меньше.
Вот символы строки могут отображаться на эти биты (байты) по разному. Это на жаргоне и называется "кодировка".
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333503
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Арсеньев,

Сергей АрсеньевУ байта нет кодировки. Это всего лишь несколько битов не больше не меньше.
Вот символы строки могут отображаться на эти биты (байты) по разному. Это на жаргоне и называется "кодировка".
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333561
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andrei TКодировка есть у байтов, а строка - это набор символов.
Еще раз!
1. у байтов кодировки нет - запиши в блокнот
2. у символов кодировка есть - это можно запомнить
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333577
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
am_sasa,

Ты не нервничай. Тебе и твоему альтер эго рекомендую научиться читать не по отдельным словам, а предложениями и в контексте. Никто про абстрактные байты не говорит, то что ты цитируешь относится к байтам в контексте обсуждения "кодировки строки". Кодировка строки - это её байтовое представление (байт - это в первую очередь число, а не "несколько битов не больше не меньше"). Слово "кодировка" в данном случае, для особо одаренных, означает не процесс кодировки и не функцию отображения, а закодированное состояние. Кодировка символов в JVM (числовое значение типа char) к обсуждаемому вопросу вообще не имеет отношения. Драйвер JDBC, который тут обсуждался, работает не с символами, а с байтовым представлением строки.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333613
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
am_sasa,

am_sasa1. у байтов кодировки нет - запиши в блокнот
2. у символов кодировка есть - это можно запомнить

Ты себе на лоб запиши:
1) Символ - это визуальное отображение буквы, цифры, знака пунктуации, и т.п.
2) Код символа - это число, или набор байтов
3) Кодировка байтов - это система преобразования символов в числовые коды
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333620
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrei T3) Кодировка байтов - это система преобразования символов в числовые коды
Кодировка байтов - это система представления байтов в виде чего-нибудь еще (например в виде печатных символов - см. base64)
А кодировка символов - это представление символов, например, в виде байтов.

И Вы путаете сленг лингвистов со сленгом программистов при определении понятия символ. В общем, не страшно, но здесь тематический форум.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333625
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andrei T,

ну извините, если обидел.
Словосочетание "Кодировка байтов" это очень мощно...
кодировка - это таблица/процесс/алгоритм перевода байт в символы и обратно
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333665
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Арсеньев, am_sasa,

Товарищи, у вас проблемы либо с чтением, либо с восприятием.

Сергей Арсеньевфайл properties можно прочесть указав (явно или не очень), что он в кодировке UTF-8
Сергей АрсеньевУ байта нет кодировки
Сергей АрсеньевКодировка байтов - это система представления байтов в виде чего-нибудь еще
am_sasaСловосочетание "Кодировка байтов" это очень мощно...
Файл - это байты или не байты? Почему у файла есть кодировка, а у байтов ее нету?
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333666
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Арсеньев,

Сергей АрсеньевИ Вы путаете сленг лингвистов со сленгом программистов при определении понятия символ
Нда? Ну просвети меня, пожалуйста, что на сленге программистов этого форума означает "символ"?
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333701
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrei T,

Файл это файл. А символы, байткод, записи, фильмы или еще какие-нибудь объекты в нем - это как Вашей фантазии угодно.
Главное, чтобы способ кодирования этого при записи соответствовал способу декодирования при чтении. А то возможна всякая абракадабра. Именно по этому
Andrei Tу файла есть кодировка
Что в переводе со сленга означает - информация в файле записана с использованием кодировки.

P.S. Байты представляют собой последовательности бит, а те в свою очередь кодируются высоким и низким напряжением, но это уже немного из другой оперы.

Andrei TНда? Ну просвети меня, пожалуйста, что на сленге программистов этого форума означает "символ"?
Ну хотя бы как на Вики - https://en.wikipedia.org/wiki/Character_(computing)
То, что ты подразумевал под символом там называется grapheme.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333710
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrei TФайл - это байты или не байты? Почему у файла есть кодировка, а у байтов ее нету?

Потому что это в контексте читаемых файлов. Никто это явно не произносит но имеет ввиду
У бинари файлов нет кодировки ибо это бесмысленно это набор байтов. Так же как и тестовые файлы это набор байтов.

Текстовые файлы же говорят имеют кодировку в том плане что она указывает каким образом символы преобразовали в байты при записи и как эти байты преобразовать обратно в символы чтобы получить теже символы в которых его и создавали.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333740
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
llemingПотому что это в контексте читаемых файлов. Никто это явно не произносит но имеет ввиду
Мы тут изначально только в контексте читаемых (текстовых) файлов и разговариваем:
Andrei TНикто про абстрактные байты не говорит

Сергей АрсеньевФайл это файл. А символы, байткод, записи, фильмы или еще какие-нибудь объекты в нем - это как Вашей фантазии угодно.
В случае данного топика в файле текст.

Сергей АрсеньевAndrei Tу файла есть кодировкаЧто в переводе со сленга означает - информация в файле записана с использованием кодировки.
Какая религия тебе запрещает использовать речевой оборот "записаны с использованием кодировки" в отношении байтов? Сокращая по возможности до "у байтов есть кодировка" по аналогии с "у файла есть кодировка"?

Сергей АрсеньевP.S. Байты представляют собой последовательности бит, а те в свою очередь кодируются высоким и низким напряжением, но это уже немного из другой оперы.
Я в принципе и так уже понял, что у тебя словесное недержание, и что ты тут пистишь чисто ради попистеть.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333751
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrei TКакая религия тебе запрещает использовать речевой оборот "записаны с использованием кодировки" в отношении байтов? Сокращая по возможности до "у байтов есть кодировка" по аналогии с "у файла есть кодировка"?


реально режет слух.
всякий текст на диске есть набор байтов. не всякий набор байтов на диске есть текст.

простая логика.
одно умозаключение всегда верно, второе нет.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333754
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
llemingУ бинари файлов нет кодировки ибо это бесмысленно это набор байтов.
А всякие биг-эндиан, ло-эндиан ?

Zip, Gzip, Bmp, Jpeg и прочее....
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333766
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
llemingреально режет слух.
Ну это, без сомнения, очень весомый аргумент
...
Рейтинг: 0 / 0
25 сообщений из 88, страница 1 из 4
Форумы / Java [игнор отключен] [закрыт для гостей] / Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]