|
|
|
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
|
|||
|---|---|---|---|
|
#18+
llemingЕсли драйвер не использует кодировки зачем тогда в jdbc url явно указывать кодировку клиента? Драйвер как раз их и использует. Он преобразует строку из кодировки jvm в кодировку сессии и отправляет СУБД. СУБД преобразует строку из кодировки сессии в кодировку в которой указано хранить. (Хотя возможны ньюансы). Но это для типов данных на которые влияет кодировка сессии. Для тех же BLOBов (и прочих RAW) или для специальных типов, для которых указана альтернативная кодировка нужны специальные указания (или не нужны если просто перекодирования не предполагается а надо хранить как есть в виде байтиков) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 10:56 |
|
||
|
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
|
|||
|---|---|---|---|
|
#18+
Andrei TНету, дубинушка. Прежде чем с Вами конструктивно разговаривать дайте понятие своему определению "кодировка символов". Ибо то, что понимают все остальные под этим термином, Вы называете "кодировка байтов". P.S. И да мы все тут про хранение символов в памяти в виде последовательностей байтов, если походите по ссылкам выше, может прочтете, что иногда JVM это делает по разному и даже указывает как именно в составе типа java.lang.String. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 11:02 |
|
||
|
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевAndrei TНету, дубинушка. Прежде чем с Вами конструктивно разговаривать дайте понятие своему определению "кодировка символов". Ибо то, что понимают все остальные под этим термином, Вы называете "кодировка байтов". P.S. И да мы все тут про хранение символов в памяти в виде последовательностей байтов, если походите по ссылкам выше, может прочтете, что иногда JVM это делает по разному и даже указывает как именно в составе типа java.lang.String. Про "хранение символов в памяти в виде последовательностей байтов" тут говоришь только ты. Потому что, как я сказал ранее, у тебя приступ словоблудия. Изначальный вопрос, если ты взглянешь на название темы, к вопросу внутреннего устройства конкретной реализации JVM не имеет никакого отношения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 11:39 |
|
||
|
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
|
|||
|---|---|---|---|
|
#18+
Andrei TПро "хранение символов в памяти в виде последовательностей байтов" тут говоришь только ты. Нет. Про это сказал, немного ошибшись в деталях, Леонид. А вот Вы надумали себе что-то про то, что нет никакой кодировки и начали вещать про это. На что Вам и было указано. В главном, что преобразование из кодировки в которой JVM хранит строки в кодировку сеанса связи с СУБД занимается jdbc драйвер никто и не спорил. Собственно ответ на вопрос TC и заключается в том, чтобы расписать шаги, как из кодировки файла получить строки в кодировке JVM и как их потом отправить в СУБД. Утверждение, что нет никакой кодировки ибо эта информация лишняя, никакого конструктива не несет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 11:48 |
|
||
|
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевAndrei TПро "хранение символов в памяти в виде последовательностей байтов" тут говоришь только ты. Нет. Про это сказал, немного ошибшись в деталях, Леонид. На что Вам и было указано. Ты в хамской форме написал невнятную чушь с рядом фактических ошибок. Если подводит память, то может помочь вернуться к началу темы и прочитать еще раз. Сергей АрсеньевВ главном, что преобразование из кодировки в которой JVM хранит строки в кодировку сеанса связи с СУБД занимается jdbc драйвер никто и не спорил. Никакими преобразованиями драйвер не занимается. Он получает уже преобразованную строку через вызов стандартного API (как этот API реализован в конкретной JRE - не важно), в той кодировке, которая ему требуется. Сергей АрсеньевУтверждение, что нет никакой кодировки ибо эта информация лишняя, никакого конструктива не несет. За такой конструктив обычно снимают баллы. Просто потому что отвечать надо по существу вопроса, а не вываливать все свои скудные познания по теме и не по теме в нечленораздельной форме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 12:57 |
|
||
|
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев, Сергей АрсеньевА вот Вы надумали себе что-то про то, что нет никакой кодировки Это не я надумал, это задокументированный и всем известный факт. Твоя проблема - в незнании терминологии и Сергей АрсеньевПрежде чем с Вами конструктивно разговаривать дайте понятие своему определению "кодировка символов". Ибо то, что понимают все остальные под этим термином, Вы называете "кодировка байтов". непонимании того, что "кодировка символов" и "кодировка байтов" это два абсолютно разных понятия. Это выглядит особенно глупо на фоне того, как ты с апломбом знатока фамильярно коверкаешь непосредственно относящиеся к делу термины: Сергей АрсеньевLeonid Kudryavtsevпропущено... А всякие биг-эндиан, ло-эндиан ? Zip, Gzip, Bmp, Jpeg и прочее.... Индейцы это вообще не про байты, а про слова. Если ты в курсе про порядок байтов, то проблем с пониманием того, что является и не является кодировкой, по идее быть не должно. Тем не менее они есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 13:19 |
|
||
|
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
|
|||
|---|---|---|---|
|
#18+
Andrei Tнепонимании того, что "кодировка символов" и "кодировка байтов" это два абсолютно разных понятия. Тут унас расхождений нет. Просто то, что Вы называете, "кодировкой байтов" для меня "кодировка символов". Кодировка байтов - (представление байтов в другой форме нежли последовательность 8 битов, чисел от 0-255 и т.п.) это действительно совсем другое дело. С другой стороны, поскольку Ваша "кодировка символов" в действительности не существует, по Вашему утверждению, то и зачем знать, что это такое. И если действие производится через стандартное API, это не означает, что оно не производится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 13:35 |
|
||
|
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевТут унас расхождений нет. Просто то, что Вы называете, "кодировкой байтов" для меня "кодировка символов". Кодировка байтов - (представление байтов в другой форме нежли последовательность 8 битов, чисел от 0-255 и т.п.) это действительно совсем другое дело. А мне кажется, что именно здесь у нас и есть расхождение. Я еще в самом начале темы объяснил, что, как и почему я называю "кодировкой символов" (числовые коды) и "кодировкой байтов" (байтовое представление). Более того, я в своем первом комментарии, к которому ты придрался, объяснил, почему "кодировка символов" к обсуждаемому вопросу отношения не имеет. Что ты лично под кодировкой подразумеваешь, я до сих пор так и не понял. По-моему ты и сам запутался уже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 17:17 |
|
||
|
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевP.S. И да мы все тут про хранение символов в памяти в виде последовательностей байтов, если походите по ссылкам выше, может прочтете, что иногда JVM это делает по разному и даже указывает как именно в составе типа java.lang.String. Вот это та самая несусветная чушь на которую вам указывает Andrei T. Строки в JVM _всегда_ в UTF-16. Кодировка возникает только при преобразовании byte[] -> String и String -> byte[] и это всегда кодировка byte[]. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 17:54 |
|
||
|
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
|
|||
|---|---|---|---|
|
#18+
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. Хоть бы в документацию заглянул кто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 18:07 |
|
||
|
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
|
|||
|---|---|---|---|
|
#18+
Тут больше спор по терминологии и документация тут не поможет. Если кодировка у String и есть ли она у byte[] здесь вот например тожу по этому вопросу бугуртили http://stackoverflow.com/questions/5729806/encode-string-to-utf-8 второй ответ. по сути даже вопрос тоже самый с крякозябрами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 18:21 |
|
||
|
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
|
|||
|---|---|---|---|
|
#18+
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 и не пахнет ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 18:38 |
|
||
|
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevЛично я несусветной чуши не вижу. Ну как не видите? Сергей АрсеньевP.S. И да мы все тут про хранение символов в памяти в виде последовательностей байтов, если походите по ссылкам выше, может прочтете, что иногда JVM это делает по разному и даже указывает как именно в составе типа java.lang.String. В этой фразе две фактических ошибки: 1. JVM не "делает это по разному". 2. "в составе типа java.lang.String" не указано ничего связаное с кодировкой, там толико char[], а char как примитивный тип четко специфицирован в JVM Spec, ссылку куда я привел. И терминология тут не при чем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 18:47 |
|
||
|
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevВообще, предлагаю закруглятся. Ну, нет. Давайте продолжать. Я прям зачитываюсь этим спором на ровном месте. Leonid KudryavtsevА то все по принципу: когда встречаются два философа и начинают беседу... Во-во. Если JDBC вызывает метод JSE, который конвертирует строку в байты, то кто же "делает" это преобразование? Драйвер или JVM? Филосифия зашкаливает. Leonid KudryavtsevНе понял, чем пугаю, т.к. например англоязычныя Вики уверяет... Я лично понимаю под wide char... Тогда предлагаю исключить этот термин из обсуждения в виду отсутсвия его точного определения. Leonid KudryavtsevCharacters, т.к. если я правильно прочел Вашу ссылку, есть символы, кодируемые двумя Character'ами. Да, ты же сам про codepoint выше написал. Leonid KudryavtsevТ.е. честным wide char и не пахнет ((( Ну, это же UTF-16 и есть. Предлагаю этот термин исключить из обсуждения, потому что ты понимаешь под ним что-то своё. А в интернетах мнения расходятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 18:52 |
|
||
|
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczLeonid KudryavtsevВообще, предлагаю закруглятся. Ну, нет. Давайте продолжать. Я прям зачитываюсь этим спором на ровном месте. So do I Я бы продолжил, но в твоем сообщении только один вопрос: BlazkowiczВо-во. Если JDBC вызывает метод JSE, который конвертирует строку в байты, то кто же "делает" это преобразование? Драйвер или JVM? Курица ! Т.к. спор курица vs яйцо явно возник значительно раньше, чем Java - то думаю, во всем она /курица/ и виновата ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 19:15 |
|
||
|
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
|
|||
|---|---|---|---|
|
#18+
fixxerВот это та самая несусветная чушь на которую вам указывает Andrei T. Строки в JVM _всегда_ в UTF-16 . Кодировка возникает только при преобразовании byte[] -> String и String -> byte[] и это всегда кодировка byte[]. А - он говорит другое. Б - выделено жирным В - почитайте ссылки выше, про варианты представления строк при использовании определенных ключей, и то, что засунуто в java 9 Кодировка чего-то это представление чего-то в другом виде. Если позиция Andrei Tя называю "кодировкой символов" (числовые коды) Имеет право на существование, (и более того IMHO верна), хотя некоторые считают, что это не так BlazkowiczLeonid KudryavtsevВроде называется Unicode Нет такой кодировки. ;) Хотя Unicode и есть стандарт кодирования символов числом. Спор весь построен на фразе, что коды к вопросу не относятся. Хотя описание процесса в ответе Леонида и было в последовательности преобразований кодов символов. Суть же ответа, что надо указать исходные для файла или переделать файл так, чтоб он правильно преобразовывался к типу char и далее уже по накатанной... С этим как сказал один умный человек BlazkowiczКоллеги, не останавливайтесь. Ещё только вторая страница спора в котором все правы. Просто спор о том, что такое Java закончился, а интересных тем не было... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 13:15 |
|
||
|
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczВо-во. Если JDBC вызывает метод JSE, который конвертирует строку в байты, то кто же "делает" это преобразование? Арифметеко-логическое устройство же. Вышеперечисленные им только командуют по иерархии. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 13:19 |
|
||
|
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевХотя Unicode и есть стандарт кодирования символов числом. Верно. Но в этом стандарте нет ни слова о том как упаковать это число в байты. Сергей АрсеньевПросто спор о том, что такое Java закончился, а интересных тем не было... Сегодня на повестке дня "Скриптлеты. Удобный инструмента или пагубная привычка?". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 13:21 |
|
||
|
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
|
|||
|---|---|---|---|
|
#18+
fixxer2. "в составе типа java.lang.String" не указано ничего связаное с кодировкой, там толико char[], а char как примитивный тип четко специфицирован в JVM Spec, ссылку куда я привел. -XX:+UseCompressedStrings и JEP 254: Compact Strings Хотя в основном да это тип char, который с точки зрения программиста на языке Java никак не связан с числом если не копаться внутри. Если покопаться, то может быть выяснено, что он может представлять собой записанные в кодировке UTF-16 символы. Но, как сказал уважаемый оппонент, копаться не стоит, ибо к делу не относится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 13:34 |
|
||
|
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczВерно. Но в этом стандарте нет ни слова о том как упаковать это число в байты. Так там же группа стандартов. В нее входят и про форматы трансформации этих кодов. Ну хоть бы RFC 4042. :) BlazkowiczСегодня на повестке дня "Скриптлеты. Удобный инструмента или пагубная привычка?". Спасибо, пойду почитаю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 13:39 |
|
||
|
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 14:34 |
|
||
|
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
|
|||
|---|---|---|---|
|
#18+
[quot Blazkowicz]Сергей АрсеньевХотя Unicode и есть стандарт кодирования символов числом. Верно. Но в этом стандарте нет ни слова о том как упаковать это число в байты. Вообще-то есть: http://unicode.org/glossary/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 14:50 |
|
||
|
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
|
|||
|---|---|---|---|
|
#18+
http://unicode.org/reports/tr17/#CharacterEncodingScheme просто ссылка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 15:02 |
|
||
|
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
|
|||
|---|---|---|---|
|
#18+
fixxerКакой вы трудный. -XX:+UseCompressedStrings был введен в Java 6 update 21 в качестве экспериментальной фичи, в последствии это было признано ошибкой и опция была deprecated в Java 7 и убрана в Java 8. Занудный. Собственно речь и шла, про редкие случаи (плюс то, что по слухам намечается в 9-ке из коробки). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 15:16 |
|
||
|
Как записать строку из properties-файла (UTF-8) в БД с кодировкой WIN1251?
|
|||
|---|---|---|---|
|
#18+
lleming http://unicode.org/reports/tr17/#CharacterEncodingScheme просто ссылка Хорошая ссылка, некоторым тут будет полезно её распечатать и внимательно прочитать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 15:25 |
|
||
|
|

start [/forum/topic.php?fid=59&startmsg=39334183&tid=2123557]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
67ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
84ms |
get tp. blocked users: |
2ms |
| others: | 203ms |
| total: | 405ms |

| 0 / 0 |
