Author |
Message |
Written on: 29. 11. 2012 [15:17]
|
trotila
Юрий
Topic creator
registered since: 09.04.2012
Posts: 10
|
Текст ошибки :
5|IConv | Ошибка преобразования входной последовательности: Неверный или неполный мультибайтный или широкий знак
0|IConv | Ошибка преобразования из UTF-8 в KOI8-R для части сообщения: Привет
Условия возникновения:
Запуск проекта или редактирование визуального элемента, основонного на базовом виджете Документ, со значением атрибута Шаблон равным:
<body>
<h4> Привет</h4>
</body>
Для возникновения ошибки необходимо наличие не латинских символов в тегах и атрибутах атрибута Шаблон виджета Документ.
После запуска проекта или открытия окна редактирования визуального элемента, виджет содержит текст "Привет" в кодировке UTF-8 п÷я─п╦п╡п╣я┌
Исходные даныне:
Атрибуты станции:
-Внутренняя кодировка:KOI8-R
-Язык: ru_RU.KOI8-R
Версия утилиты ivonv 2.3.6
Вывод команды locale
LANG=ru_RU.KOI8-R
LC_CTYPE="ru_RU.KOI8-R"
LC_NUMERIC="ru_RU.KOI8-R"
LC_TIME="ru_RU.KOI8-R"
LC_COLLATE="ru_RU.KOI8-R"
LC_MONETARY="ru_RU.KOI8-R"
LC_MESSAGES="ru_RU.KOI8-R"
LC_PAPER="ru_RU.KOI8-R"
LC_NAME="ru_RU.KOI8-R"
LC_ADDRESS="ru_RU.KOI8-R"
LC_TELEPHONE="ru_RU.KOI8-R"
LC_MEASUREMENT="ru_RU.KOI8-R"
LC_IDENTIFICATION="ru_RU.KOI8-R"
LC_ALL=
Аналогичная проблема с кодировкой при работе с модулями ui_WebCfgD, ui_WebVision. Вместо кирилических символов на экране текст в кодировке UTF-8
|
Written on: 29. 11. 2012 [15:52]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"trotila" wrote:
Текст ошибки :
5|IConv | Ошибка преобразования входной последовательности: Неверный или неполный мультибайтный или широкий знак
0|IConv | Ошибка преобразования из UTF-8 в KOI8-R для части сообщения: Привет
Это не ошибка OpenSCADA, а отсутствие в libiconv или встроенной функции iconv одной из кодировок. Проверяем командой "$ iconv -l". Во всяком случае с подобной проблемой недавно сталкивался на Segnetics SMH2Gi с системной кодировкой ru_RU.CP1251.
Learn, learn and learn better than work, work and work.
|
Written on: 30. 11. 2012 [08:05]
|
trotila
Юрий
Topic creator
registered since: 09.04.2012
Posts: 10
|
Библиотека libiconv(liconv) в системе отсутствует.
В выводе команды $iconv -l требуемые кодировки присутствуют.
Вывод команды iconv -l | grep KOI.*8.*R :
CSKOI8R//
KOI8-R//
KOI8R//
Вывод команды iconv -l | grep UTF.*8 :
ISO-10646/UTF-8/
ISO-10646/UTF8/
UTF-8//
UTF8//
|
Written on: 30. 11. 2012 [08:23]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"trotila" wrote:
Библиотека libiconv(liconv) в системе отсутствует.
В выводе команды $iconv -l требуемые кодировки присутствуют.
OK, только OpenSCADA всёравно не занимается перекодировкой, а использует для этого "iconv" и нет у меня таких проблем, да и систем с отличной от кодировки UTF-8 давно нет, не считая SMH2Gi где GUI не используется, но при случае попробую на своей машине сменить локаль на ru_RU.UTF-8.
Learn, learn and learn better than work, work and work.
|
Written on: 30. 11. 2012 [09:00]
|
trotila
Юрий
Topic creator
registered since: 09.04.2012
Posts: 10
|
"trotila" wrote:
Текст ошибки :
5|IConv | Ошибка преобразования входной последовательности: Неверный или неполный мультибайтный или широкий знак
0|IConv | Ошибка преобразования из UTF-8 в KOI8-R для части сообщения: Привет
Считаю что проблема не в утилите iconv. Почему-то OpenScada пытается вызвать функцию перекодирования из UTF-8 в KOI8-R для текста в кодировке KOI8-R, это естественным образом вызывает ошибку.
Установка языка LANG в ru_RU.UTF-8 решает данную проблему.
Спасибо.
[This article was edited 3 times, at last 30.11.2012 at 10:21.]
|
Written on: 01. 12. 2012 [16:01]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"roman" wrote:
OK, только OpenSCADA всёравно не занимается перекодировкой, а использует для этого "iconv" и нет у меня таких проблем, да и систем с отличной от кодировки UTF-8 давно нет, не считая SMH2Gi где GUI не используется, но при случае попробую на своей машине сменить локаль на ru_RU.UTF-8.
Была проблема с работой на однобайтовых кодировках, в коде появившемся уже после вытеснения их UTF-8. Исправил — всё вроде работает. Попутно преобразование с одной кодировки в другую сделал тихим, без сообщений и проходящим до конца, т.е. теперь если встречаются символы, которых нет в целевой кодировке они будут заменяться на символ '?', что характерно для преобразования из обобщённой UTF-8 в одно-байтовые. Также сделал проблему отсутствия описания сущностей, при парсинге XML, некритической и эти сущности тоже меняются на '?'.
Собственно использовать OpenSCADA на однобайтовых кодировках сейчас можно, однако с оглядкой на факт отсутствия там символов вроде '—', '№', а так-же многих сущностей при парсинге XML, XHTML, например, " ".
Learn, learn and learn better than work, work and work.
|
Written on: 04. 12. 2012 [14:33]
|
trotila
Юрий
Topic creator
registered since: 09.04.2012
Posts: 10
|
Текущая конфигурация OpenSCADA-станции без проблем встала на новую сборку проекта, решив все имеющееся проблемы. Спасибо!
Только, обнаружилась еще одна проблема. Суть её заключается в том, что все скрипты на языке пользовательского программирования (JavaLikeCalc) не отображают кириллические символы в графическом элементе "поле ввода", в котором они вводятся. При этом, символы участвуют при компиляции скрипта (OpenSCADA в своем внутреннем представлении их видит, а отобразить не может).
Язык системы по-прежнему ru_RU.KOI8-R.
|
Written on: 04. 12. 2012 [15:13]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"trotila" wrote:
Только, обнаружилась еще одна проблема. Суть её заключается в том, что все скрипты на языке пользовательского программирования (JavaLikeCalc) не отображают кириллические символы в графическом элементе "поле ввода", в котором они вводятся.
Это где конкретно? У меня всё нормально и везде отображается.
Learn, learn and learn better than work, work and work.
|
Written on: 04. 12. 2012 [15:53]
|
trotila
Юрий
Topic creator
registered since: 09.04.2012
Posts: 10
|
"roman" wrote:
Это где конкретно?
1) в функциях библиотек DAQ_JavaLikeCalc
2) в программах в ui_WebUser
3) В шаблонах DAQ_LogicLev
4) Во вкладке обработка ui_Vision
Это проявляется при языке системы ru_RU.KOI8-R
|
Written on: 04. 12. 2012 [17:41]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"trotila" wrote:
1) в функциях библиотек DAQ_JavaLikeCalc
Нормально.
"trotila" wrote:
2) в программах в ui_WebUser
Тут исходно текста с кириллицей у меня нет, но вводится нормально.
"trotila" wrote:
3) В шаблонах DAQ_LogicLev
Тут нормально.
"trotila" wrote:
4) Во вкладке обработка ui_Vision
И тут нормально.
Похоже QT4 ожидает текст не в системной кодировке KOI8-R, чего у меня нет. Похоже это проблема QT4 версии, которая у Вас или её сборка-конфигурация некорректна. У меня Qt 4.8.3.
Learn, learn and learn better than work, work and work.
|