powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
88 сообщений из 88, показаны все 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
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333771
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevllemingУ бинари файлов нет кодировки ибо это бесмысленно это набор байтов.
А всякие биг-эндиан, ло-эндиан ?

Zip, Gzip, Bmp, Jpeg и прочее....
годно :)
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333776
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
llemingвсякий текст на диске есть набор байтов
А не на диске?
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333782
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в памяти
сойдет ?
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333793
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
llemingв памяти
сойдет ?
А чего у тебя еще есть кроме памяти?
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333807
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrei TКакая религия тебе запрещает использовать речевой оборот "записаны с использованием кодировки" в отношении байтов?
Эта религия называется русский язык.
Ну не принято в нем сокращать "действие совершаемые с объектом, чтобы получить результат" до "действие результатов". Потому, что "мытье чистых окон" выглядит глупо, а "мытье окон" нет.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333808
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть
а что имеено тебе нужно ?
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333810
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
llemingесть
а что имеено тебе нужно ?
Ну ты озвучь чего есть, а там посмотрим.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333815
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевAndrei TКакая религия тебе запрещает использовать речевой оборот "записаны с использованием кодировки" в отношении байтов?
Эта религия называется русский язык.
Ну не принято в нем сокращать "действие совершаемые с объектом, чтобы получить результат" до "действие результатов". Потому, что "мытье чистых окон" выглядит глупо, а "мытье окон" нет.
Аутист?
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333817
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevllemingУ бинари файлов нет кодировки ибо это бесмысленно это набор байтов.
А всякие биг-эндиан, ло-эндиан ?

Zip, Gzip, Bmp, Jpeg и прочее....
Индейцы это вообще не про байты, а про слова.
И тут выдернуто из контекста, про то, что отображение буковок в циферки не называется "отображением циферок". И с символами jvm как раз через это отображение и работает. Хотя в языке Java мухи (символы) и котлеты (циферки) могут существовать раздельно.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333821
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrei TАутист?
Не - программист. :)
Не любит эта профессия "точных слов не помню, но содержание примерно такое..."
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333826
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrei Tllemingесть
а что имеено тебе нужно ?
Ну ты озвучь чего есть, а там посмотрим.

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

Это бессмысленное утверждение, у строки нет кодировки.
Если Вы не видите в чем-то смысла, значит одно из трех:
- смысла там нет
- Вы не смогли его понять
- Истина где-то рядом (C) авторы X-Files

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

2TC: В связи с чем, файл properties можно прочесть указав ( явно или не очень ),
что он в кодировке UTF-8, и тем самым он будет переведен в кодировку jvm .
пропущено...

Я вам указал на ваши фактические ошибки:
1) У java.lang.String нет кодировки
2) Файл .properties в UTF-8 можно прочитать только явно указав UTF-8
3) Набор слов "Строки символов в памяти JVM" имеет смысл только в контексте строковых литералов, содержащихся в исходном тексте программы
4) Набор слов "файл properties можно прочесть, указав что он в кодировке UTF-8, и тем самым он будет переведен в кодировку jvm" некорректен. Файл не будет никуда переведен, он будет декодирован в строку, у которой кодировки нет, потому что см. 1.

Дальше вы начали строить из себя идиота, заниматься выборочным цитированием и придираться к словосочетанию "кодировка байтов". Хотя я доступно объяснил, что это сокращенное "байтовое представление строки в определенной кодировке", и что это должно быть понятно из контекста.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333837
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, не останавливайтесь. Ещё только вторая страница спора в котором все правы.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333847
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrei T1) У java.lang.String нет кодировки

AFAIK
1. Она как суслик. Есть. Вроде называется Unicode ))) /скорее всего UTF-16/
2. Вроде она сейчас в wide char, а раньше, если не ошибаюсь, внутрях была именно UTF8. JNMI до сих пор имеет функции работы со строками как с Utf8. AFAIK (могу ошибаться).
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333855
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevВроде называется Unicode
Нет такой кодировки. ;)

Leonid Kudryavtsev2. Вроде она сейчас в wide char, а раньше, если не ошибаюсь, внутрях была именно UTF8. JNMI до сих пор имеет функции работы со строками как с Utf8. AFAIK (могу ошибаться).
http://docs.oracle.com/javase/6/docs/api/java/lang/Character.html#unicode
На сколько раньше? Java 1.1?
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333874
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczНа сколько раньше? Java 1.1?
Не помню уже. Лет 15 назад. Когда Java & Java Native Method Invocation занимался )))

Но и сейчас до сих пор актуально. Например, первая попавшаяся ссылка из google:

http://openjdk.java.net/jeps/254

Если я правильно понимаю английский язык, не факт, что в String будет именно wide char.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333879
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevЕсли я правильно понимаю английский язык, не факт, что в String будет именно wide char.
It is not a goal to use alternate encodings such as UTF-8 in the internal representation of strings
Английский не нужен. Шипилёв многократно по-русски объяснял что это будет.

А что же нам скажет гугл про wide char
Wide characters are multilingual character codes that are always 16 bits wide

Леонид, вы меня пугаете.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39333891
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevAndrei T1) У java.lang.String нет кодировки

AFAIK
1. Она как суслик. Есть. Вроде называется Unicode ))) /скорее всего UTF-16/
2. Вроде она сейчас в wide char, а раньше, если не ошибаюсь, внутрях была именно UTF8. JNMI до сих пор имеет функции работы со строками как с Utf8. AFAIK (могу ошибаться).
Это все классно, и написано в javadoc'е java.lang.String. Только я никак не возьму в толк, какое отношение внутреннее представление строки имеет к задаче перекладывания текста из файла в базу. Это избыточная информация, которая может только запутать неопытного в Java человека. Коллега Сергей Арсеньев вот вроде настаивает, что внутренняя кодировка как-то используется драйвером в сеансе связи с СУБД -- это же очевидный бред.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39334111
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrei TЯ вам указал на ваши фактические ошибки:
1) У java.lang.String нет кодировки

Andrei TДальше вы начали строить из себя идиота, заниматься выборочным цитированием и придираться к словосочетанию "кодировка байтов". Хотя я доступно объяснил, что это сокращенное "байтовое представление строки в определенной кодировке", и что это должно быть понятно из контекста.
Прежде чем считать других идиотами определись. Есть ли у символов в java.lang.String внутри JVM "байтовое представление строки в определенной кодировке" или нет. А то какая-то шиза у тебя наблюдается. То нет, то есть. И дальше уж в соответствии c этим делай выводы.
Кроме того тебе сказали, что она называется на сленге - "кодировкой символов" ибо "кодировка байтов" это другое, о чем чуть выше повествовали.

P.S.
2 TC чтоб записать Uncode символы в properties не обязательно не обязательно использовать UTF-8, их можно кодировать так:
Код: java
1.
example=\u043Fри\u043Cер\uD83E\uDD84


Если все не Latin-7 символы кодировать так, то можно сохранять и в UTF-8.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39334125
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrei Tчто внутренняя кодировка как-то используется драйвером в сеансе связи с СУБД -- это же очевидный бред.
Не считайте бредом то, что
Andrei Tникак не возьму в толк
Фраза была про то, что если Строка в JVM находится в правильном представлении, то нормальный и правильно настроенный jdbc драйвер должен сам ее сохранить в представлении СУБД и лишних телодвижений делать не надо. За исключением тех типов данных, которым требуется явное указание кодировки. Кроме того, даже начинающий программист должен понимать, что при сохранении в СУБД в кодировке 1251 он скорее всего потеряет те символы Unicode, которых в этой кодировке нет.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39334129
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczАнглийский не нужен. Шипилёв многократно по-русски объяснял что это будет.
Разве не своего рода реинкарнация -XX:+UseCompressedStrings?
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39334149
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевРазве не своего рода реинкарнация -XX:+UseCompressedStrings?
Да, но, не такая корявая.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39334157
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Арсеньев,

Вот тут Шипилев объясняет разницу между UseCompressedStrings и JEPS 254
https://www.infoq.com/news/2016/02/compact-strings-Java-JDK9
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39334160
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrei T. Коллега Сергей Арсеньев вот вроде настаивает, что внутренняя кодировка как-то используется драйвером в сеансе связи с СУБД -- это же очевидный бред.

в файле одна кодировка в jvm другая в БД третья. Если драйвер не использует кодировки зачем тогда в jdbc url явно указывать кодировку клиента ? Это jdbc url драйвер и парсит это точно. я чет как то ковырял.

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

Сергей АрсеньевФраза была про то, что если Строка в JVM находится в правильном представлении, то нормальный и правильно настроенный jdbc драйвер должен сам ее сохранить
Строка в JVM по определению из JLS может находиться только в одном представлении - массив юникодных символов. Правильное это представление или нет зависит только от одного - какую кодировку использовали при декодировании байтового представления этой строки.
Драйвер JDBC работает тоже с байтовым представлением строки, которое он явно получает через java.lang.String.getBytes(databaseEncoding).

У тебя в голове каша манная вместо того, что там должно быть.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39334183
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
llemingЕсли драйвер не использует кодировки зачем тогда в jdbc url явно указывать кодировку клиента?
Драйвер как раз их и использует.
Он преобразует строку из кодировки jvm в кодировку сессии и отправляет СУБД. СУБД преобразует строку из кодировки сессии в кодировку в которой указано хранить. (Хотя возможны ньюансы). Но это для типов данных на которые влияет кодировка сессии. Для тех же BLOBов (и прочих RAW) или для специальных типов, для которых указана альтернативная кодировка нужны специальные указания (или не нужны если просто перекодирования не предполагается а надо хранить как есть в виде байтиков) :)
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39334190
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrei TНету, дубинушка.
Прежде чем с Вами конструктивно разговаривать дайте понятие своему определению "кодировка символов".
Ибо то, что понимают все остальные под этим термином, Вы называете "кодировка байтов".

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

P.S. И да мы все тут про хранение символов в памяти в виде последовательностей байтов, если походите по ссылкам выше, может прочтете, что иногда JVM это делает по разному и даже указывает как именно в составе типа java.lang.String.
Про "хранение символов в памяти в виде последовательностей байтов" тут говоришь только ты. Потому что, как я сказал ранее, у тебя приступ словоблудия. Изначальный вопрос, если ты взглянешь на название темы, к вопросу внутреннего устройства конкретной реализации JVM не имеет никакого отношения.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39334256
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrei TПро "хранение символов в памяти в виде последовательностей байтов" тут говоришь только ты.
Нет. Про это сказал, немного ошибшись в деталях, Леонид. А вот Вы надумали себе что-то про то, что нет никакой кодировки и начали вещать про это. На что Вам и было указано. В главном, что преобразование из кодировки в которой JVM хранит строки в кодировку сеанса связи с СУБД занимается jdbc драйвер никто и не спорил.
Собственно ответ на вопрос TC и заключается в том, чтобы расписать шаги, как из кодировки файла получить строки в кодировке JVM и как их потом отправить в СУБД. Утверждение, что нет никакой кодировки ибо эта информация лишняя, никакого конструктива не несет.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39334319
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевAndrei TПро "хранение символов в памяти в виде последовательностей байтов" тут говоришь только ты.
Нет. Про это сказал, немного ошибшись в деталях, Леонид. На что Вам и было указано.
Ты в хамской форме написал невнятную чушь с рядом фактических ошибок. Если подводит память, то может помочь вернуться к началу темы и прочитать еще раз.

Сергей АрсеньевВ главном, что преобразование из кодировки в которой JVM хранит строки в кодировку сеанса связи с СУБД занимается jdbc драйвер никто и не спорил.
Никакими преобразованиями драйвер не занимается. Он получает уже преобразованную строку через вызов стандартного API (как этот API реализован в конкретной JRE - не важно), в той кодировке, которая ему требуется.

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

Сергей АрсеньевА вот Вы надумали себе что-то про то, что нет никакой кодировки
Это не я надумал, это задокументированный и всем известный факт. Твоя проблема - в незнании терминологии и
Сергей АрсеньевПрежде чем с Вами конструктивно разговаривать дайте понятие своему определению "кодировка символов".
Ибо то, что понимают все остальные под этим термином, Вы называете "кодировка байтов".
непонимании того, что "кодировка символов" и "кодировка байтов" это два абсолютно разных понятия. Это выглядит особенно глупо на фоне того, как ты с апломбом знатока фамильярно коверкаешь непосредственно относящиеся к делу термины:
Сергей АрсеньевLeonid Kudryavtsevпропущено...

А всякие биг-эндиан, ло-эндиан ?

Zip, Gzip, Bmp, Jpeg и прочее....
Индейцы это вообще не про байты, а про слова.
Если ты в курсе про порядок байтов, то проблем с пониманием того, что является и не является кодировкой, по идее быть не должно. Тем не менее они есть.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39334363
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrei Tнепонимании того, что "кодировка символов" и "кодировка байтов" это два абсолютно разных понятия.
Тут унас расхождений нет. Просто то, что Вы называете, "кодировкой байтов" для меня "кодировка символов". Кодировка байтов - (представление байтов в другой форме нежли последовательность 8 битов, чисел от 0-255 и т.п.) это действительно совсем другое дело.
С другой стороны, поскольку Ваша "кодировка символов" в действительности не существует, по Вашему утверждению, то и зачем знать, что это такое.

И если действие производится через стандартное API, это не означает, что оно не производится.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39334665
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевТут унас расхождений нет. Просто то, что Вы называете, "кодировкой байтов" для меня "кодировка символов". Кодировка байтов - (представление байтов в другой форме нежли последовательность 8 битов, чисел от 0-255 и т.п.) это действительно совсем другое дело.
А мне кажется, что именно здесь у нас и есть расхождение.
Я еще в самом начале темы объяснил, что, как и почему я называю "кодировкой символов" (числовые коды) и "кодировкой байтов" (байтовое представление). Более того, я в своем первом комментарии, к которому ты придрался, объяснил, почему "кодировка символов" к обсуждаемому вопросу отношения не имеет. Что ты лично под кодировкой подразумеваешь, я до сих пор так и не понял. По-моему ты и сам запутался уже.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39334693
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевP.S. И да мы все тут про хранение символов в памяти в виде последовательностей байтов, если походите по ссылкам выше, может прочтете, что иногда JVM это делает по разному и даже указывает как именно в составе типа java.lang.String.

Вот это та самая несусветная чушь на которую вам указывает Andrei T. Строки в JVM _всегда_ в UTF-16. Кодировка возникает только при преобразовании byte[] -> String и String -> byte[] и это всегда кодировка byte[].
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39334706
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2.3. Primitive Types and Values
char, whose values are 16-bit unsigned integers representing Unicode code points in the Basic Multilingual Plane, encoded with UTF-16, and whose default value is the null code point ('')


Код: java
1.
2.
3.
4.
5.
public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence {
    /** The value is used for character storage. */
    private final char value[];
   // ...



Хоть бы в документацию заглянул кто.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39334717
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут больше спор по терминологии и документация тут не поможет.
Если кодировка у String и есть ли она у byte[]

здесь вот например тожу по этому вопросу бугуртили
http://stackoverflow.com/questions/5729806/encode-string-to-utf-8
второй ответ.

по сути даже вопрос тоже самый с крякозябрами.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39334730
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxerВот это та самая несусветная чушь на которую вам указывает Andrei T. Строки в JVM _всегда_ в UTF-16. Кодировка возникает только при преобразовании byte[] -> String и String -> byte[] и это всегда кодировка byte[].

Лично я несусветной чуши не вижу.

А объяснения, в чем же заключается "несусветность" приводит к значительно большей чуше. IMHO

Вообще, предлагаю закруглятся. А то все по принципу: когда встречаются два философа и начинают беседу с фразы "давайте сначала договоримся о терминологии". Проблема топик-стартера решилась на 8-ом сообщении, 9-ое сообщение от Сергей Арсеньев последнее, которое хоть какой-то смысл имело. IMHO Далее на двух страницах флем/треп/стеб о "терминологии".

При этом от людей, которые вряд ли на практике с сложными вещами из Unicode сталкивались. А всякие "сложности" типа диакретических знаков и прочего.... как я понимаю, ровно так же сложностями в Java 1.8 и остались ((( Что и утверждение "String это набор символов без кодировки" делает так же не корректным. Т.к. достаточно столкнутся с "supplementary code points", что бы схватиться за голову и начинать крыть матом на Unicode и людей которые его придумали. Я свое уже отхватался в начале 2000-х, но тогда UTF-16/32 еще за не надобностью даже и не было, был только UTF-8. Когда выяснил, что нужных мне по работе символов в Unicode нет и не планируется. Вроде даже из комитет ответили, что добавить не могут - т.к. место кончилось )))).

BlazkowiczА что же нам скажет гугл про wide char
Wide characters are multilingual character codes that are always 16 bits wide

Леонид, вы меня пугаете.
Не понял, чем пугаю, т.к. например англоязычныя Вики уверяет:

https://en.wikipedia.org/wiki/Wide_character

Size of a wide character

UTF-16 little-endian is the encoding standard at Microsoft (and in the Windows operating system). Yet with surrogate pairs it supports 32-bit as well.[1] The .Net Framework platform supports multiple wide-character implementations including UTF7, UTF8, UTF16 and UTF32.[2]

The Java platform requires that wide character variables be defined as 16-bit values, and that characters be encoded using UTF-16 (due to former use of UCS-2), while modern Unix-like systems generally require 32-bit values encoded using UTF-32.[citation needed]

Я лично понимаю под wide char

The C standard distinguishes between multibyte encodings of characters, which use a fixed or variable number of bytes to represent each character (primarily used in source code and external files), from wide characters, which are run-time representations of characters in single objects (typically, greater than 8 bits).
Т.е. противопоставление Wide char (один символ - одно значение) и Multi Bytes (один символ - несколько значений).

Как выяснилось, тут тоже ошибался (((, т.к. оказывается в Java все же multi bytes ))). Точнее multi Characters, т.к. если я правильно прочел Вашу ссылку, есть символы, кодируемые двумя Character'ами. Т.е. честным wide char и не пахнет (((
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39334738
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevЛично я несусветной чуши не вижу.


Ну как не видите?

Сергей АрсеньевP.S. И да мы все тут про хранение символов в памяти в виде последовательностей байтов, если походите по ссылкам выше, может прочтете, что иногда JVM это делает по разному и даже указывает как именно в составе типа java.lang.String.

В этой фразе две фактических ошибки:
1. JVM не "делает это по разному".
2. "в составе типа java.lang.String" не указано ничего связаное с кодировкой, там толико char[], а char как примитивный тип четко специфицирован в JVM Spec, ссылку куда я привел.

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

Ну, нет. Давайте продолжать. Я прям зачитываюсь этим спором на ровном месте.

Leonid KudryavtsevА то все по принципу: когда встречаются два философа и начинают беседу...

Во-во. Если JDBC вызывает метод JSE, который конвертирует строку в байты, то кто же "делает" это преобразование? Драйвер или JVM? Филосифия зашкаливает.

Leonid KudryavtsevНе понял, чем пугаю, т.к. например англоязычныя Вики уверяет...
Я лично понимаю под wide char...

Тогда предлагаю исключить этот термин из обсуждения в виду отсутсвия его точного определения.

Leonid KudryavtsevCharacters, т.к. если я правильно прочел Вашу ссылку, есть символы, кодируемые двумя Character'ами.
Да, ты же сам про codepoint выше написал.

Leonid KudryavtsevТ.е. честным wide char и не пахнет (((
Ну, это же UTF-16 и есть. Предлагаю этот термин исключить из обсуждения, потому что ты понимаешь под ним что-то своё. А в интернетах мнения расходятся.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39334751
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczLeonid KudryavtsevВообще, предлагаю закруглятся.

Ну, нет. Давайте продолжать. Я прям зачитываюсь этим спором на ровном месте.

So do I

Я бы продолжил, но в твоем сообщении только один вопрос:

BlazkowiczВо-во. Если JDBC вызывает метод JSE, который конвертирует строку в байты, то кто же "делает" это преобразование? Драйвер или JVM?

Курица !

Т.к. спор курица vs яйцо явно возник значительно раньше, чем Java - то думаю, во всем она /курица/ и виновата
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39335291
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxerВот это та самая несусветная чушь на которую вам указывает Andrei T. Строки в JVM _всегда_ в UTF-16 . Кодировка возникает только при преобразовании byte[] -> String и String -> byte[] и это всегда кодировка byte[].
А - он говорит другое.
Б - выделено жирным
В - почитайте ссылки выше, про варианты представления строк при использовании определенных ключей, и то, что засунуто в java 9

Кодировка чего-то это представление чего-то в другом виде.

Если позиция
Andrei Tя называю "кодировкой символов" (числовые коды)
Имеет право на существование, (и более того IMHO верна), хотя некоторые считают, что это не так
BlazkowiczLeonid KudryavtsevВроде называется Unicode
Нет такой кодировки. ;)
Хотя Unicode и есть стандарт кодирования символов числом.

Спор весь построен на фразе, что коды к вопросу не относятся.

Хотя описание процесса в ответе Леонида и было в последовательности преобразований кодов символов.

Суть же ответа, что надо указать исходные для файла или переделать файл так, чтоб он правильно преобразовывался к типу char и далее уже по накатанной... С этим как сказал один умный человек
BlazkowiczКоллеги, не останавливайтесь. Ещё только вторая страница спора в котором все правы.
Просто спор о том, что такое Java закончился, а интересных тем не было...
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39335294
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczВо-во. Если JDBC вызывает метод JSE, который конвертирует строку в байты, то кто же "делает" это преобразование?
Арифметеко-логическое устройство же. Вышеперечисленные им только командуют по иерархии. :)
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39335298
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевХотя Unicode и есть стандарт кодирования символов числом.

Верно. Но в этом стандарте нет ни слова о том как упаковать это число в байты.

Сергей АрсеньевПросто спор о том, что такое Java закончился, а интересных тем не было...
Сегодня на повестке дня "Скриптлеты. Удобный инструмента или пагубная привычка?".
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39335318
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer2. "в составе типа java.lang.String" не указано ничего связаное с кодировкой, там толико char[], а char как примитивный тип четко специфицирован в JVM Spec, ссылку куда я привел.
-XX:+UseCompressedStrings и JEP 254: Compact Strings

Хотя в основном да это тип char, который с точки зрения программиста на языке Java никак не связан с числом если не копаться внутри. Если покопаться, то может быть выяснено, что он может представлять собой записанные в кодировке UTF-16 символы. Но, как сказал уважаемый оппонент, копаться не стоит, ибо к делу не относится.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39335328
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczВерно. Но в этом стандарте нет ни слова о том как упаковать это число в байты.
Так там же группа стандартов. В нее входят и про форматы трансформации этих кодов. Ну хоть бы RFC 4042. :)

BlazkowiczСегодня на повестке дня "Скриптлеты. Удобный инструмента или пагубная привычка?".
Спасибо, пойду почитаю...
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39335406
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Арсеньевfixxer2. "в составе типа java.lang.String" не указано ничего связаное с кодировкой, там толико char[], а char как примитивный тип четко специфицирован в JVM Spec, ссылку куда я привел.
-XX:+UseCompressedStrings и JEP 254: Compact Strings


Какой вы трудный. -XX:+UseCompressedStrings был введен в Java 6 update 21 в качестве экспериментальной фичи, в последствии это было признано ошибкой и опция была deprecated в Java 7 и убрана в Java 8.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39335431
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Blazkowicz]Сергей АрсеньевХотя Unicode и есть стандарт кодирования символов числом.

Верно. Но в этом стандарте нет ни слова о том как упаковать это число в байты.
Вообще-то есть: http://unicode.org/glossary/
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39335451
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39335477
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxerКакой вы трудный. -XX:+UseCompressedStrings был введен в Java 6 update 21 в качестве экспериментальной фичи, в последствии это было признано ошибкой и опция была deprecated в Java 7 и убрана в Java 8.
Занудный. Собственно речь и шла, про редкие случаи (плюс то, что по слухам намечается в 9-ке из коробки).
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39335492
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lleming http://unicode.org/reports/tr17/#CharacterEncodingScheme
просто ссылка
Хорошая ссылка, некоторым тут будет полезно её распечатать и внимательно прочитать.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39335572
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrei TХорошая ссылка, некоторым тут будет полезно её распечатать и внимательно прочитать.
Учитель, только Я уверовал, что их нет и быть не может, как стало надо учить какие они бывают. Я не поспеваю за Вашей мыслью.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39335584
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевAndrei TХорошая ссылка, некоторым тут будет полезно её распечатать и внимательно прочитать.
Учитель, только Я уверовал, что их нет и быть не может, как стало надо учить какие они бывают. Я не поспеваю за Вашей мыслью.
Это тем более удивительно, учитывая что по ссылке написано практически буквально то, что тебе объясняют уже 3 страницы.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39335588
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrei TВообще-то есть: http://unicode.org/glossary/
Вообще-то там даже HTML упоминается. С такой логикой HTML это тоже часть Unicode.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39335599
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczAndrei TВообще-то есть: http://unicode.org/glossary/
Вообще-то там даже HTML упоминается. С такой логикой HTML это тоже часть Unicode.
Отличная идея для новой темы, а то эта похоже уже себя исчерпала
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39335616
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrei TЭто тем более удивительно, учитывая что по ссылке написано практически буквально то, что тебе объясняют уже 3 страницы.
Не там про байтики. А мы договорились, что жто не савсем то. Тем более что там, про форму.

P.S. Вы так и не поняли про что мы спорим. Про умение выражать свои мысли.

- ТС задал вопрос.
- Леонид начал, несколько утрировано и с ошибками объяснять как оно происходит "изнутре"

Еслиб Вы сказали, что-то типа:
из несказанного- начинающему программису не стоит сильно заморачиваться на тему, как оно устроено внутри, при хранении и обработке типа char, а рассматривать строковой тип как черный ящик и сосредоточится на правильном приведении последовательности символов закодированных в файле к этому типу. Для чего либо стоит использовать файлы в кодировке ISO-8859-1 с кодированием остальных символов в виде Unicode кодов с подставочным символом '\'. Либо указывать кодировку файла при его открытии.
Кто бы с Вами спорил. Но Вы сказали - кодировок нет. И мы стали согласовывать терминологию.

Вот, например, я подразумеваю под "кодировкой символов" систему правил, которая определяет:
- правила кодирования символов (подстановки им в соответствие некого кода);
- правила перевода кодов символов из одной формы в другую (например большие-маленькие);
- правила сравнения символов по кодам (равно-не равно, раньше-позже);
- правила лингвистической сортировки;
и т.п.

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

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

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

Про то и был последующий разговор, что когда Вы говорите некоторые очевидные Вам вещи, встает вопрос - что Вы имеете ввиду? Вы же на него обижаетесь. Вот и пришлось из Вас клещами вытягивать, извините за это.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39335656
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевAndrei TСамое интересное, что в самом первом моем сообщении (на которое ты наехал) было сказано в т.ч. и про "кодировку символов" в твоей интерпретации .
В том смысле, что ее нет? Символы закодированы никак. Кодируются только байты. Символы битые. Остальное к вопросу не относится.
Будь добр, процитируй еще раз мое первое сообщение, на которой ты ответил. Потому что сейчас ты уже просто гонишь .
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39335658
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrei TLeonid KudryavtsevИз Java кодировки (UTF-8)
Это бессмысленное утверждение, у строки нет кодировки. Кодировка есть у байтов, а строка - это набор символов. Возможно вы говорите про коды символов (числовое значение char), но это к заданному вопросу не относится, так как символы после декодирования содержимого файла и создания строки уже кривые.
Найди 7 отличий.
Сергей Арсеньев В том смысле, что ее нет? Символы закодированы никак. Кодируются только байты. Символы битые. Остальное к вопросу не относится.

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

Это бессмысленное утверждение, у строки нет кодировки. Кодировка есть у байтов, а строка - это набор символов. Возможно вы говорите про коды символов (числовое значение char), но это к заданному вопросу не относится, так как символы после декодирования содержимого файла и создания строки уже кривые.
Найди 7 отличий.
Сергей Арсеньев В том смысле, что ее нет? Символы закодированы никак. Кодируются только байты. Символы битые. Остальное к вопросу не относится.

Ну да краткая выжимка, как она понята - см. про X Files.
Кажется я понял, в чем проблема. Попробуй сесть ближе к монитору.
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39337408
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrei TКажется я понял, в чем проблема. Попробуй сесть ближе к монитору.
Что Вы начнете внятно выражать свои мысли и объясните почему Вы считаете, что в Java не определен результат следующей операции:
Код: java
1.
(int)((char)0x0401)


Заметим ни о каких байтиках речи не идет.
Но соответствие между числовым кодом и символом есть. А значит есть и кодировка (правила присвоения кода).
...
Рейтинг: 0 / 0
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
    #39337868
Andrei T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевЧто Вы начнете внятно выражать свои мысли и объясните почему Вы считаете, что в Java не определен результат следующей операции:
Код: java
1.
(int)((char)0x0401)



Что это за онанизм? Пояснишь, что ты имел в виду, и почему нельзя написать просто
Код: java
1.
0x0401


?

Сергей АрсеньевЗаметим ни о каких байтиках речи не идет.
Но соответствие между числовым кодом и символом есть. А значит есть и кодировка (правила присвоения кода).

Никто с этим и не спорит.

'Ё' -> U+0401

'Ё' -> [(char)0x401]

"Ё" -> [(byte)0x4, (byte)0x1]
"Ё" -> [(byte)0x1, (byte)0x4]
"Ё" -> [(byte)0xFE, (byte)0xFF, (byte)0x4, (byte)0x1]
"Ё" -> [(byte)0xFF, (byte)0xFE, (byte)0x1, (byte)0x4]

Все из вышеперечисленного можно называть "кодировкой". Весь вопрос в том, что из этого мы понимаем под кодировкой в рамках данного топика .
...
Рейтинг: 0 / 0
88 сообщений из 88, показаны все 4 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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