Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / OLAP и DWH Новый топик    Ответить
 QlikView: Проблемы с UTF-8 при экспорте  [new]
LSV
Member

Откуда: Киев
Сообщений: 30150
Столкнулся с одной серьезной проблемой в QlikView.
Даже не знаю, с какой стороны к ней подойти.

Имеем QV Server 11.20.12018.0409.10
В КВ единичным SQL-запросом без преобразований зачитана таблица.
Она нормально выглядит на экране. Но........
При экспорте в Эксель/csv одно и то же значение поля в некот. строках выгладит не так, как в других.
Проблема в преобразованиях UTF-8. Одно и то же слово может быть перекодировано по разному.
см. картинку. Впереди "лишний" символ. Это кирилица без к-л посторонних символов.
Из-за этого происходят нарушения в сводных таблицах, т.к. "одно и тоже" значение раздваивается.

Проблема возникает спонтанно. И даже в строках с числами (н-р числовой номер документа).
Какие действия предпринять, чтобы избежать неодинаковых преобразований строк ?

зы: говорят, что очень редкая ошибка :)

К сообщению приложен файл. Размер - 21Kb
15 ноя 17, 14:52    [20956329]     Ответить | Цитировать Сообщить модератору
 Re: QlikView: Проблемы с UTF-8 при экспорте  [new]
Andy_OLAP
Member

Откуда: я знаю, что Зенит - чемпион
Сообщений: 1310
LSV,

Попробуйте макросом с явным указанием, чтобы не думал, а выгружал как UTF8, типа ActiveDocument.GetSheetObject("Таблица_со_слетевшей_CodePage").Export "C:\catalog_for_csv_from_QV\pivot.csv", ",", 65001, false
15 ноя 17, 15:22    [20956535]     Ответить | Цитировать Сообщить модератору
 Re: QlikView: Проблемы с UTF-8 при экспорте  [new]
LSV
Member

Откуда: Киев
Сообщений: 30150
Andy_OLAP
LSV,
Попробуйте макросом с явным указанием, чтобы не думал, а выгружал как UTF8, типа ActiveDocument.GetSheetObject("Таблица_со_слетевшей_CodePage").Export "C:\catalog_for_csv_from_QV\pivot.csv", ",", 65001, false
И что теперь к каждому гриду макрос цеплять ?
А можно указать не 65001 ?
Как указать win1251 ? У мну только кирилица/латиница.
15 ноя 17, 15:25    [20956561]     Ответить | Цитировать Сообщить модератору
 Re: QlikView: Проблемы с UTF-8 при экспорте  [new]
Andy_OLAP
Member

Откуда: я знаю, что Зенит - чемпион
Сообщений: 1310
LSV,

Ну попробуйте делать на стороне SQL явно convert(nvarchar(xxx),...).
И в региональных настройках у себя не-юникодный язык на какой-нибудь немецкий, рестарт, затем снова на кириллицу, затем снова на рестарт.
Windows - она такая...
15 ноя 17, 15:33    [20956610]     Ответить | Цитировать Сообщить модератору
 Re: QlikView: Проблемы с UTF-8 при экспорте  [new]
LSV
Member

Откуда: Киев
Сообщений: 30150
Andy_OLAP
LSV,

Ну попробуйте делать на стороне SQL явно convert(nvarchar(xxx),...).
Дык проблема возникает у 1 строки из 1000.
Обычно на больших выборках.
15 ноя 17, 15:36    [20956636]     Ответить | Цитировать Сообщить модератору
 Re: QlikView: Проблемы с UTF-8 при экспорте  [new]
Andy_OLAP
Member

Откуда: я знаю, что Зенит - чемпион
Сообщений: 1310
LSV
Andy_OLAP
LSV,

Ну попробуйте делать на стороне SQL явно convert(nvarchar(xxx),...).
Дык проблема возникает у 1 строки из 1000.
Обычно на больших выборках.

Нужно вырезать REPLACE([Column], char(9), ''), это табуляция внутри многострочных полей в справочнике при заполнении таблицы БД, которые поленились вырезать при сохранении в длинной строке...
15 ноя 17, 16:30    [20956947]     Ответить | Цитировать Сообщить модератору
 Re: QlikView: Проблемы с UTF-8 при экспорте  [new]
LSV
Member

Откуда: Киев
Сообщений: 30150
Andy_OLAP
LSV
пропущено...
Дык проблема возникает у 1 строки из 1000.
Обычно на больших выборках.

Нужно вырезать REPLACE([Column], char(9), ''), это табуляция внутри многострочных полей в справочнике при заполнении таблицы БД, которые поленились вырезать при сохранении в длинной строке...
В таблице однозначно нет никаких табуляций. Иначе они бы были во всех экспортированных строках.
Но беда только в 1 из 1000.
15 ноя 17, 16:43    [20957006]     Ответить | Цитировать Сообщить модератору
 Re: QlikView: Проблемы с UTF-8 при экспорте  [new]
LSV
Member

Откуда: Киев
Сообщений: 30150
// Но беда только в 1 из 1000.

Если брать одинаковые значения поля. Т.е. среди 1000 одинаковых значений может быть 1, 2 с лишним символом впереди.
ппц кароч....
15 ноя 17, 16:47    [20957022]     Ответить | Цитировать Сообщить модератору
 Re: QlikView: Проблемы с UTF-8 при экспорте  [new]
Andy_OLAP
Member

Откуда: я знаю, что Зенит - чемпион
Сообщений: 1310
LSV,

Коллега, поставьте FAR Manager, откройте файл по F3, а затем переведите по F4 в режим HEX и посмотрите на код этого символа...
15 ноя 17, 16:47    [20957025]     Ответить | Цитировать Сообщить модератору
 Re: QlikView: Проблемы с UTF-8 при экспорте  [new]
Andy_OLAP
Member

Откуда: я знаю, что Зенит - чемпион
Сообщений: 1310
LSV,

Почему-то думаю, что Вы увидите Unicode U+0009 в начале строки.
15 ноя 17, 16:49    [20957035]     Ответить | Цитировать Сообщить модератору
 Re: QlikView: Проблемы с UTF-8 при экспорте  [new]
LSV
Member

Откуда: Киев
Сообщений: 30150
Глянул ФАРом.
"Левый" символ такой (hex) :
EF BB BF
15 ноя 17, 17:16    [20957154]     Ответить | Цитировать Сообщить модератору
 Re: QlikView: Проблемы с UTF-8 при экспорте  [new]
Andy_OLAP
Member

Откуда: я знаю, что Зенит - чемпион
Сообщений: 1310
LSV
Глянул ФАРом.
"Левый" символ такой (hex) :
EF BB BF

Вот тут советуют вырезать BOM отдельной утилитой.
15 ноя 17, 17:24    [20957189]     Ответить | Цитировать Сообщить модератору
 Re: QlikView: Проблемы с UTF-8 при экспорте  [new]
Andy_OLAP
Member

Откуда: я знаю, что Зенит - чемпион
Сообщений: 1310
LSV
Глянул ФАРом.
"Левый" символ такой (hex) :
EF BB BF

Вообще проверяйте в исходном тексте в столбцах на MSSQL наличие таких дополнительных кодов как ASCII 192, любой из них внутри QV сконвертируется в BF, а далее станет BOM-ом.
15 ноя 17, 17:27    [20957207]     Ответить | Цитировать Сообщить модератору
 Re: QlikView: Проблемы с UTF-8 при экспорте  [new]
LSV
Member

Откуда: Киев
Сообщений: 30150
Andy_OLAP
LSV
Глянул ФАРом.
"Левый" символ такой (hex) :
EF BB BF

Вот тут советуют вырезать BOM отдельной утилитой.
Смешно, но у меня утилита ничего не исправила.
Я в шоке.
Три байта не могут удалить !!!
15 ноя 17, 17:51    [20957331]     Ответить | Цитировать Сообщить модератору
 Re: QlikView: Проблемы с UTF-8 при экспорте  [new]
Andy_OLAP
Member

Откуда: я знаю, что Зенит - чемпион
Сообщений: 1310
LSV
Andy_OLAP
пропущено...

Вот тут советуют вырезать BOM отдельной утилитой.
Смешно, но у меня утилита ничего не исправила.
Я в шоке.
Три байта не могут удалить !!!

Попробуйте указывать для загружаемых данных явную Collation
LOAD *;
SQL select column1,
        column2  COLLATE Cyrillic_General_CI_AS
from DB.dbo.Table

Когда при загрузке портятся символы вне стандартной Collation - иной раз помогает переключение с Microsoft OLED DB Provider for SQL Server на Native Client

У Вас изначально прилетают в таблицу "кривые" символы, поэтому через визард их даже видно.

Можно макрос повесить на событие с явным указанием 65001 как UTF-8.
15 ноя 17, 18:40    [20957605]     Ответить | Цитировать Сообщить модератору
 Re: QlikView: Проблемы с UTF-8 при экспорте  [new]
LSV
Member

Откуда: Киев
Сообщений: 30150
Andy_OLAP
У Вас изначально прилетают в таблицу "кривые" символы, поэтому через визард их даже видно.
Если грузить десктопом (он у меня 12.0), то все ОК.
А сервер 11.20
Изначально не могут быть кривыми.
Из 8 тыс. строк только по одному складу, ошибка в названии склада встречается 4 раза.

Занятно, что если фильтрануть клик по этому складу и повторить выгрузку, проблема НЕ ПОЯВЛЯЕТСЯ.

реальная жесть.....
15 ноя 17, 19:14    [20957700]     Ответить | Цитировать Сообщить модератору
 Re: QlikView: Проблемы с UTF-8 при экспорте  [new]
LSV
Member

Откуда: Киев
Сообщений: 30150
Читать так:
Изначально данные не могут быть кривыми.
15 ноя 17, 19:23    [20957720]     Ответить | Цитировать Сообщить модератору
 Re: QlikView: Проблемы с UTF-8 при экспорте  [new]
Andy_OLAP
Member

Откуда: я знаю, что Зенит - чемпион
Сообщений: 1310
LSV
Если грузить десктопом (он у меня 12.0), то все ОК.
Из 8 тыс. строк только по одному складу, ошибка в названии склада встречается 4 раза.
Занятно, что если фильтрануть клик по этому складу и повторить выгрузку, проблема НЕ ПОЯВЛЯЕТСЯ.

Коллега, а может быть QV как Рафик - полностью не виновен? Я бы прогнал memtest ради интереса :)
15 ноя 17, 19:23    [20957721]     Ответить | Цитировать Сообщить модератору
 Re: QlikView: Проблемы с UTF-8 при экспорте  [new]
LSV
Member

Откуда: Киев
Сообщений: 30150
Пока выкрутился самодельной утилитой, кот. чистит сраный DOM.

Один из реальных вариантов - проапгрейдиться до 12.

Остальное пока не помогло.
16 ноя 17, 15:08    [20960334]     Ответить | Цитировать Сообщить модератору
 Re: QlikView: Проблемы с UTF-8 при экспорте  [new]
Andy_OLAP
Member

Откуда: я знаю, что Зенит - чемпион
Сообщений: 1310
LSV
Пока выкрутился самодельной утилитой, кот. чистит сраный DOM.

Один из реальных вариантов - проапгрейдиться до 12.

Остальное пока не помогло.

Да, у народа на QV11 SR3 такая же ерунда с BOM.
И с сенсом тоже самое.
+

Это не баг, это фича. "Вырезать, вырезать и еще раз вырезать!" (с) В.И.Ленин, разработчик QlikView
16 ноя 17, 16:30    [20960759]     Ответить | Цитировать Сообщить модератору
 Re: QlikView: Проблемы с UTF-8 при экспорте  [new]
LSV
Member

Откуда: Киев
Сообщений: 30150
Важное замечание для тех, кто тоже будет чистить этот BOM:
Кликовский CSV файл начинается на BOM. И его удалять не надо. По нему Эксель понимает, что в файле UTF-8.
Удалять надо все остальные вхождения.
17 ноя 17, 13:12    [20963329]     Ответить | Цитировать Сообщить модератору
 Re: QlikView: Проблемы с UTF-8 при экспорте  [new]
George Nordic
Member

Откуда: Moscow
Сообщений: 999
LSV
Один из реальных вариантов - проапгрейдиться до 12.

Да, в 12ке переписали данный механизм.

С Уважением,
Георгий
20 ноя 17, 09:51    [20967992]     Ответить | Цитировать Сообщить модератору
 Re: QlikView: Проблемы с UTF-8 при экспорте  [new]
LSV
Member

Откуда: Киев
Сообщений: 30150
George Nordic
LSV
Один из реальных вариантов - проапгрейдиться до 12.

Да, в 12ке переписали данный механизм.

С Уважением,
Георгий
Ну это утверждение еще предстоит проверить. :)
Проблема не в движке, а в процедуре экспорта.

Я вот к удивлению обнаружил, что небольшие выборки КВ создает как нативный XLS, а большие - как CSV.
В малых выборках сабжевой проблемы (БОМ) пока не встречал. Но опять таки это еще не факт, увы.
20 ноя 17, 11:44    [20968568]     Ответить | Цитировать Сообщить модератору
Все форумы / OLAP и DWH Ответить