Текущее время: Вт, авг 26 2025, 19:25

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Проблема при считывании файла в UTF-8
СообщениеДобавлено: Пн, июл 27 2015, 15:48 
Ассистент
Ассистент

Зарегистрирован:
Вт, апр 11 2006, 14:45
Сообщения: 25
приветствую

есть текстовый (XML) файл, который при просмотре в кодировке 1251 выглядит так:
Изображение

в то же время в нотпаде 7й винды он выглядит вот так:
Изображение

когда я этот файл читаю через OPEN DATASET...IN TEXT MODE ENCODING UTF-8 то в отладчике я вижу, что считались те же кракозябры:
Изображение

альтернативная попытка считать файл как бинарный и подвергнуть его перекодировке приводит к ровно такому же результату с кракозябрами. Вот такой код использую:
Code:
  OPEN DATASET l_fname FOR INPUT IN BINARY MODE.
  READ DATASET l_fname INTO l_xml_data.
  CLOSE DATASET l_fname.

  lcl_conv = cl_abap_conv_in_ce=>create( encoding = '4310' ). "4310 = UTF-8
  lcl_conv->convert( EXPORTING input = l_xml_data n = xstrlen( l_xml_data ) IMPORTING data = l_str ).


вопрос: где мой косяк и как мне получить нормальный текст в KTEXT?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проблема - считать файл в UTF-8 (срочно)
СообщениеДобавлено: Пн, июл 27 2015, 16:41 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
попробуйте 4110


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: проблема - считать файл в UTF-8 (срочно)
СообщениеДобавлено: Пн, июл 27 2015, 17:34 
Ассистент
Ассистент

Зарегистрирован:
Вт, апр 11 2006, 14:45
Сообщения: 25
увы, тот же эффект. в смысле - никакого эффекта, те же кракозябры :(


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проблема - считать файл в UTF-8 (срочно)
СообщениеДобавлено: Пн, июл 27 2015, 17:46 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
тогда вместо 4110 укажите UTF-8


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: проблема - считать файл в UTF-8 (срочно)
СообщениеДобавлено: Вт, июл 28 2015, 10:45 
Ассистент
Ассистент

Зарегистрирован:
Вт, апр 11 2006, 14:45
Сообщения: 25
UTF-8 тоже не помогло :(

видимо нужен какой-то принципиально иной заход, но я его не вижу


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проблема - считать файл в UTF-8 (срочно)
СообщениеДобавлено: Вт, июл 28 2015, 13:40 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
жуть какая-то.. посмотрите текст в виде hex(raw),
в отладке есть такая опция просмотра поля,
и проверьте вначале данных наличие bom для utf-8 -
последовательность ef bb bf,
если её нет, вероятно это не utf-8, хотя судя по
характерным крякозяблам это он.
ещё можно внимательно отладить метод convert
и посмотреть что он делает с переданной кодировкой


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: проблема - считать файл в UTF-8 (срочно)
СообщениеДобавлено: Вт, июл 28 2015, 22:54 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
Используйте Notepad++, там кодировку чуть более явно видно.
BOM для utf-8 - это порождение мастдая, у нормальных ребят стандарт - utf-8 without BOM.
Попробуйте уточнить кодировку исходного файла этой штучкой: http://www.artlebedev.ru/tools/decoder/


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: проблема - считать файл в UTF-8
СообщениеДобавлено: Пн, авг 03 2015, 06:26 
Специалист
Специалист

Зарегистрирован:
Чт, мар 25 2010, 09:02
Сообщения: 207
Еще в отладке есть возможность посмотреть содержимое бинарной переменной в виде XML. Посмотрите как там выглядит.
Как вариант, если вы используете OPEN DATASET... - значит читаете с сервера приложений, не могло где-то двойного преобразования кодировки произойти когда на сервер файл выкладывали? Сравните размер файла, который у вас на компьютере лежит и тот который на сервере.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB