|
Sqlite3: .import csv: русские буквы отображаются в виде "?".
|
|||
---|---|---|---|
#18+
Пожалуйста, помогите разобраться, что необходимо в настройках Sqlite3, чтобы команда .import могла заимпортить cvs с русскими буквами. sqlite> .mode csv sqlite> .separator ; sqlite> .import d:/Test.csv Test sqlite> .schema Test CREATE TABLE Test( "????????" TEXT, "?????????" TEXT, "???????" TEXT, "?????" TEXT ); CSV простая, для теста. Четыре колонки, заполненные русскими буквами. Посмотрела статьи в интернете. Вроде должно работать. У меня Windows10. Sqlite3 скачала последний отсюда https://www.sqlite.org/download.html ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2018, 12:20 |
|
Sqlite3: .import csv: русские буквы отображаются в виде "?".
|
|||
---|---|---|---|
#18+
По умолчанию, консоль использует OEM-ную кодовую страницу. Для русского это 866. "Гуёвая часть", в свою очередь, использует ANSI-шную кодовую страницу. Для русского это 1251. Чтобы консоль отображала русские буквы в ANSI-кодировке, нужно: 1. Задать для консоли TrueType-шрифт. Lucida или Consolas; 2. Сделать "chcp 1251" или в комстроке перезапуском оболочки sqlite или в самой этой оболочке (запуск системных команд). ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2018, 16:41 |
|
Sqlite3: .import csv: русские буквы отображаются в виде "?".
|
|||
---|---|---|---|
#18+
Спасибо! Проверила шрифт. Стоит шрифт ТТ Consolas, C:\Users>chcp 1251 Текущая кодовая страница: 1251 Результат тот же. И если распечатать данные в базе, то вижу sqlite>select * from Test "????";"????????";1;149 "????";"?????????";2;124 Теперь в базу, импортированную из csv, руками добавляю что-нибудь по-русски: sqlite> INSERT INTO Test VALUES("Русский", "проверяем", "смотрим" , "результат"); sqlite> select * from Test; "????";"????????";1;149 "????";"?????????";2;124 "Русский";"проверяем";"смотрим";"результат" ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2018, 18:21 |
|
Sqlite3: .import csv: русские буквы отображаются в виде "?".
|
|||
---|---|---|---|
#18+
Там везде utf-8 ожидается по умолчанию, странно что совет выше помог. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.10.2018, 20:04 |
|
Sqlite3: .import csv: русские буквы отображаются в виде "?".
|
|||
---|---|---|---|
#18+
"По умолчанию" ожидается "системная кодировка". А это - ANSI. Во что именно перекодируется системная кодировка внутри базы - вопрос отдельный. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 14:48 |
|
Sqlite3: .import csv: русские буквы отображаются в виде "?".
|
|||
---|---|---|---|
#18+
Речь не о консоли (cmd.exe), а о консольной утилите (sqlite3.exe) для работы с базами sqlite. Она и сам движок sqlite работают с UTF-8 https://www.sqlite.org/version3.html Support for UTF-8 and UTF-16 ... In the current implementation of SQLite, the SQL parser only works with UTF-8 text . So if you supply UTF-16 text it will be converted. This is just an implementation issue and there is nothing to prevent future versions of SQLite from parsing UTF-16 encoded SQL natively. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 15:15 |
|
Sqlite3: .import csv: русские буквы отображаются в виде "?".
|
|||
---|---|---|---|
#18+
Вот мы делаем условный "read console" юникодной версии и получаем на выходе (сразу или с доп.шагом) UTF8 ... "Внимание вопрос!" - с какой кодировкой работает сама "read console"? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 15:18 |
|
Sqlite3: .import csv: русские буквы отображаются в виде "?".
|
|||
---|---|---|---|
#18+
Basil A. SidorovВот мы делаем условный "read console" юникодной версии и получаем на выходе (сразу или с доп.шагом) UTF8 ... "Внимание вопрос!" - с какой кодировкой работает сама "read console"? Без разницы. Получаем кодировку консоли GetConsoleCP() и дальше при вводе конвертация из нее в UTF8, при выводе - наоборот, из UTF8. PS Сюда глянь 21680375 , я там точно такой же пример импорта давал и в файлах там UTF8. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 15:27 |
|
Sqlite3: .import csv: русские буквы отображаются в виде "?".
|
|||
---|---|---|---|
#18+
Если бы "получаем кодировку консоли", то шаманство с chcp - не требовалось бы. Раз требуется, то работают с кодировкой по умолчанию. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 15:41 |
|
Sqlite3: .import csv: русские буквы отображаются в виде "?".
|
|||
---|---|---|---|
#18+
Basil A. SidorovЕсли бы "получаем кодировку консоли", то шаманство с chcp - не требовалось бы. Раз требуется, то работают с кодировкой по умолчанию. Оно и так не требовалось, хз зачем chcp тут упомянуто. Наверно поэтому 21710919 : Basil A. SidorovПосмотрела статьи в интернете. Перевожу на понятный: tcheoПожалуйста, помогите разобраться, что необходимо в настройках Sqlite3, чтобы команда .import могла заимпортить cvs с русскими буквами. sqlite> .mode csv sqlite> .separator ; sqlite> .import d:/Test.csv Test Это она импортировала из d:/Test.csv, который в неизвестно какой кодировке (подозреваю 1251). Заметь кодировка консоли тут ни при чем. Кодировка импорта никак не указывается. Импорт консоль не использует. Затем продолжает эксперименты tcheoТеперь в базу, импортированную из csv, руками добавляю что-нибудь по-русски: sqlite> INSERT INTO Test VALUES("Русский", "проверяем", "смотрим" , "результат"); sqlite> select * from Test; "????";"????????";1;149 "????";"?????????";2;124 "Русский";"проверяем";"смотрим";"результат" То что было импортировано так и осталось вопросами, а то что добавлено INSERT нормально отображается, т.к. тут нет проблем с кодировкой, см. мой пост 21712421 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2018, 15:53 |
|
Sqlite3: .import csv: русские буквы отображаются в виде "?".
|
|||
---|---|---|---|
#18+
Всё не так просто ... Если кодировать кирилицу в UTF8, а потом "разглядывать" эти байты как WIN1251, то будут не очень понятные, но очень характерные строки текста. Если кодировать кирилицу в WIN1251, а потом "разглядывать" эти байты как UTF8, то будет "mailformed string". Случай специально подобранных бессмысленных буквосочетаний - не учитываем. Отсюда вопрос - что вообще могло импортироваться из ANSI-кирилицы приложением, которое "умеет" только UTF8? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2018, 14:58 |
|
Sqlite3: .import csv: русские буквы отображаются в виде "?".
|
|||
---|---|---|---|
#18+
Подскажите, пожалуйста, можем ли мы как-то влиять на кодировку в CSV? Чтобы там был UTF8? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2018, 15:47 |
|
Sqlite3: .import csv: русские буквы отображаются в виде "?".
|
|||
---|---|---|---|
#18+
Или 1251? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2018, 15:51 |
|
Sqlite3: .import csv: русские буквы отображаются в виде "?".
|
|||
---|---|---|---|
#18+
Dima TТам везде utf-8 ожидается по умолчанию, странно что совет выше помог. Не помог. Импортированная база не отображается в консоли. А INSERT русским текстом в любом случае добавляет и sqlite добавку корретно отображает. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2018, 17:20 |
|
Sqlite3: .import csv: русские буквы отображаются в виде "?".
|
|||
---|---|---|---|
#18+
tcheoПодскажите, пожалуйста, можем ли мы как-то влиять на кодировку в CSV? Чтобы там был UTF8?Виндовый блокнот позволяет выбрать кодировку при сохранении файла. P.S. При сохранении в UTF8 виндовый блокнот, зачем-то, лепит в начало файла B(yte)O(rder)M(ark). Если, вдруг, будет мешать, то и от него можно избавиться, не прибегая к посторонним средствам. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2018, 17:52 |
|
Sqlite3: .import csv: русские буквы отображаются в виде "?".
|
|||
---|---|---|---|
#18+
tcheoDima TТам везде utf-8 ожидается по умолчанию, странно что совет выше помог. Не помог. Импортированная база не отображается в консоли. Потому что это НЕ тоже самое что tcheo А INSERT русским текстом в любом случае добавляет и sqlite добавку корретно отображает. В чем разница я выше описал. Можно ли сделать импорт CSV в кодировке 1251? - не знаю, почитаю документацию на sqlite3.exe, вроде нельзя, но не уверен. В общем случае элементарно решается, но не с помощью sqlite3.exe, надо лишь написать свой конвертер 1251 в utf-8 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2018, 20:07 |
|
Sqlite3: .import csv: русские буквы отображаются в виде "?".
|
|||
---|---|---|---|
#18+
Для Sqlite3 не нашел как 1251 задать, но случайно наткнулся на скриншот SQLite Studio, там есть выбор кодировки. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2018, 07:10 |
|
Sqlite3: .import csv: русские буквы отображаются в виде "?".
|
|||
---|---|---|---|
#18+
Спасибо)))). В UTF8 пробовали перекодировать. Вместо "?" появились буквы, но не те, что надо, бракозябры какие-то. Попробую UTF16. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2018, 10:11 |
|
|
start [/forum/topic.php?fid=54&msg=39722251&tid=2008420]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
73ms |
get tp. blocked users: |
1ms |
others: | 268ms |
total: | 416ms |
0 / 0 |