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

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


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

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


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

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