Текущее время: Чт, авг 07 2025, 18:50

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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