Текущее время: Вт, июл 22 2025, 22:09

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: RZL_READ_FILE и unicode
СообщениеДобавлено: Ср, авг 08 2012, 16:13 
Начинающий
Начинающий

Зарегистрирован:
Пт, янв 27 2012, 15:19
Сообщения: 8
Читаю xml с application сервера, закодированный в utf-8. Вместо русский букв получаю 'a#aAaMaIb#aA aNaI b#aAaBaOb#aAaIb#.'

Как его правильно читать или преобразовать?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: RZL_READ_FILE и unicode
СообщениеДобавлено: Чт, авг 09 2012, 08:12 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Slash_qm написал(а):
Читаю xml с application сервера, закодированный в utf-8. Вместо русский букв получаю 'a#aAaMaIb#aA aNaI b#aAaBaOb#aAaIb#.'

Как его правильно читать или преобразовать?

Оператор open dataset с encoding?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RZL_READ_FILE и unicode
СообщениеДобавлено: Чт, авг 09 2012, 13:27 
Начинающий
Начинающий

Зарегистрирован:
Пт, янв 27 2012, 15:19
Сообщения: 8
юникод сработал,

только, тк READ DATASET считает построчно и xml сделан одной строкой, то даже в string влезает 132 симв.

Есть какой нибудь красивый способ побороть?

Code:
DATA: lv_str type string.                                       
OPEN DATASET file_name IN TEXT MODE ENCODING UTF-8 FOR INPUT.   
DO.                                                             
  READ DATASET file_name INTO lv_str.                           
  IF sy-subrc <> 0.                                             
    EXIT.                                                       
  ENDIF.                                                         
                                                                 
ENDDO.                       


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: RZL_READ_FILE и unicode
СообщениеДобавлено: Чт, авг 09 2012, 13:36 
Начинающий
Начинающий

Зарегистрирован:
Пт, янв 27 2012, 15:19
Сообщения: 8
пока придумал читать по 100 знаков
Code:
READ DATASET file_name INTO lv_str MAXIMUM LENGTH 100.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: RZL_READ_FILE и unicode
СообщениеДобавлено: Чт, авг 09 2012, 14:40 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, апр 18 2012, 14:20
Сообщения: 252
Откуда: РБ, г. Гомель
Пол: Мужской
Цитата:
In contrast to a C or X field, the length of a string is not static but variable and adjusts itself to the current field content at runtime. Dynamic memory management is used internally. Strings can have any length.

странно что в стринг не вмещается больше 132 символа
скорее всего в текстовом режиме файл читается построчно
попробуйте в BINARY режиме


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: RZL_READ_FILE и unicode
СообщениеДобавлено: Чт, авг 09 2012, 16:14 
Начинающий
Начинающий

Зарегистрирован:
Пт, янв 27 2012, 15:19
Сообщения: 8
MantiCore1977 написал:
в BINARY режиме

не указать кодировку


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: RZL_READ_FILE и unicode
СообщениеДобавлено: Чт, авг 09 2012, 16:38 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, апр 18 2012, 14:20
Сообщения: 252
Откуда: РБ, г. Гомель
Пол: Мужской
Slash_qm написал(а):
MantiCore1977 написал:
в BINARY режиме

не указать кодировку

вычитать в xstring и конвертировать в string c encoding = 'UTF-8'
Code:
  DATA: lr_conv TYPE REF TO cl_abap_conv_in_ce,
             lr_xstring TYPE xstring,
             lr_string TYPE string.

  lr_xstring = data.
  CALL METHOD cl_abap_conv_in_ce=>create
    EXPORTING
      input       = lr_xstring
      encoding    = 'UTF-8'
      replacement = '?'
      ignore_cerr = abap_true
    RECEIVING
      conv        = lr_conv.

  CALL METHOD lr_conv->read
    IMPORTING
      data = lr_string.


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

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


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

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


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

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