powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как преобразовать UNICODE символы при вставке или включить UTF8 в Firebird
18 сообщений из 18, страница 1 из 1
Как преобразовать UNICODE символы при вставке или включить UTF8 в Firebird
    #39118270
Фотография Aleksey K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь вставить данные из CSV в таблицу Firebird в Qt. База в кодировке ASCII. Если попадаются строки с символами не в ascii - получаю ошибку:

erorr Cannot transliterate character between character sets

Установка QSqlDatabase::setConnectOptions("ISC_DPB_LC_CTYPE=UTF8;") и преобразование колонки в UTF8 (CHARACTER SET UTF8) не помогает - та же ошибка. Попытка удалить или преобразовать символы unicode тоже не удалась:

Код: plaintext
1.
2.
3.
    QTextCodec *codec = QTextCodec::codecForName("latin1");
    QByteArray encodedString = codec->fromUnicode(str);
    str = QString(encodedString);


QString::toLatin1 () не удаляет UTF символы также. Какое здесь может быть решение?

Полностью вопрос здесь:
http://stackoverflow.com/questions/34036848/how-to-suppress-unicode-characters-in-qstring-or-convert-to-latin1

P.S. Странно, что
Код: plsql
1.
ALTER TABLE <tablename> ALTER COLUMN <column> TYPE VARCHAR(x) CHARACTER SET UTF8 

не меняет кодовую страницу колонки, она остаётся ASCII.

--
С уважением,
Алексей.
...
Рейтинг: 0 / 0
Как преобразовать UNICODE символы при вставке или включить UTF8 в Firebird
    #39118319
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Aleksey K!
You wrote on 2 декабря 2015 г. 13:25:52:

Aleksey K> База в кодировке ASCII.ну и нахрена?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как преобразовать UNICODE символы при вставке или включить UTF8 в Firebird
    #39118336
Фотография Aleksey K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий, это не ко мне, база в US, делали много лет назад, менять не хотят, хотя постоянно грабли с этим. Кстати есть команда для изменения кодировки базы? (Firebird 3.0) Может поменяю кодировку - примут.
...
Рейтинг: 0 / 0
Как преобразовать UNICODE символы при вставке или включить UTF8 в Firebird
    #39118344
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksey K,

это не изменение кодировки БД, а лишь изменение кодировки по умолчанию для вновь создаваемых столбцов, доменов ...
...
Рейтинг: 0 / 0
Как преобразовать UNICODE символы при вставке или включить UTF8 в Firebird
    #39118427
Фотография Aleksey K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, ну и как это сделать? Почему не работает ISC_DPB_LC_CTYPE=UTF8 и изменение кодовой страницы колонки?
...
Рейтинг: 0 / 0
Как преобразовать UNICODE символы при вставке или включить UTF8 в Firebird
    #39118432
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Aleksey K!
You wrote on 2 декабря 2015 г. 14:36:10:

Aleksey K> изменение кодовой страницы колонки?у тебя там уже есть данные.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как преобразовать UNICODE символы при вставке или включить UTF8 в Firebird
    #39118438
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksey KПочему не работает ISC_DPB_LC_CTYPE=UTF8 и изменение кодовой страницы
колонки?
Потому что изменение кодовой страницы колонки не работает. От слова "совсем".

Создавай новую базу с правильной кодировкой, переливай данные из старой.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как преобразовать UNICODE символы при вставке или включить UTF8 в Firebird
    #39118444
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksey K,

>Почему не работает ISC_DPB_LC_CTYPE=UTF8

потому что не всякий символ из UTF8 можно засунуть в ASCII. А вот наоборот должно работать по идее.

>и изменение кодовой страницы колонки

потому что это будет действовать только для вновь внесённых данных.
...
Рейтинг: 0 / 0
Как преобразовать UNICODE символы при вставке или включить UTF8 в Firebird
    #39118453
Фотография Aleksey K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovПотому что изменение кодовой страницы колонки не работает. От слова "совсем".
Примитивная база, блин. Тогда будем заменять символы > 127 на ?, другого способа нет.
...
Рейтинг: 0 / 0
Как преобразовать UNICODE символы при вставке или включить UTF8 в Firebird
    #39118460
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Aleksey K!
You wrote on 2 декабря 2015 г. 14:47:45:

Aleksey K> Примитивная база, блин.переходи на оракл.
но и там поведение аналогичное.
плачь.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как преобразовать UNICODE символы при вставке или включить UTF8 в Firebird
    #39118487
Фотография Aleksey K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий, я не могу никуда перейти, т.к. это определяю не я, а постгрес - лучший!!! :)
...
Рейтинг: 0 / 0
Как преобразовать UNICODE символы при вставке или включить UTF8 в Firebird
    #39118499
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Aleksey K!
You wrote on 2 декабря 2015 г. 15:10:06:

Aleksey K> а постгрес - лучший!!! :)чем армяне (с)

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как преобразовать UNICODE символы при вставке или включить UTF8 в Firebird
    #39118541
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksey K,

уже дали совет создать базу с utf8, и перелить туда данные. Мы уже так делали по заказу одной конторы, все прошло ок.
...
Рейтинг: 0 / 0
Как преобразовать UNICODE символы при вставке или включить UTF8 в Firebird
    #39118751
Фотография Aleksey K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv, уже повторил не раз - это не я решаю. Я бы перелил.
...
Рейтинг: 0 / 0
Как преобразовать UNICODE символы при вставке или включить UTF8 в Firebird
    #39118756
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksey Kуже повторил не раз - это не я решаю.
Тогда огорчи того, кто решает, фактом, что ASCII не может содержать ничего кроме латинских
букв. Если приспичило запихать туда что-то другое - используй Base64 или uuencode.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как преобразовать UNICODE символы при вставке или включить UTF8 в Firebird
    #39118778
Фотография Aleksey K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovТогда огорчи того, кто решает, фактом, что ASCII не может содержать ничего кроме латинских букв.
Он знает и ему хватает - он американец. :) Unicode встречается редко, в 2-х базах которые генерируются и не изменяются его и использовали.
...
Рейтинг: 0 / 0
Как преобразовать UNICODE символы при вставке или включить UTF8 в Firebird
    #39119128
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

эти схемы кодируют все подрд, а ему нужно по возможности сохранять совместимость с latin1

скорее тогда нужно international domains punny code зарядить :-)
...
Рейтинг: 0 / 0
Как преобразовать UNICODE символы при вставке или включить UTF8 в Firebird
    #39119711
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объясните этому бипнутому человеку, что UTF-8 идентичен с US ASCII, если в UTF8-строке содержится исключительно US ASCII.
Потом пересоздайте базу и перелейте данные.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как преобразовать UNICODE символы при вставке или включить UTF8 в Firebird
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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