Почему OCONV() с кодом 'MCT' изменяет исходную строку?

У меня есть строка с некоторыми испанскими символами, и когда я использую U2 OCONV() функция с кодом 'MCT', это меняет испанский символ на что-то еще. Кто-нибудь знает?

STRING: T r L=16 `CITáN, MOR 32000'

TEST.MCT:   5: STR2 = OCONV(STR,'MCT')
:: S
TEST.MCT:   6: CRT STR2
:: S
Cit?9: Mor 32000

2 ответа

Обратите внимание, что я создал следующую программу, и я не вижу проблемы.

КТ БП СО

 SO
 0001 STR = "CIT":CHAR(225):"N, MOR 3200"
 0002 STR2 = OCONV(STR, "MCT")
 0003 PRINT STR
 0004 PRINT STR2
 0005 PRINT SEQ(STR2[4,1])

Когда я компилирую и запускаю его, я получаю следующее:

 CITáN, MOR 3200
 Citán, Mor 3200
 225
 >

Обратите внимание, что я тестировал UniVerse11.2.2 в Windows. Можете ли вы попробовать пример кода, который я предоставил из учетной записи HS.SALES, и дайте мне знать, что он делает?

Если проблема не устранена, сообщите нам полную версию UniVerse и ОС, на которой вы ее используете.

добавлена ​​информация: заметка протестирована на UniVerse 11.1.1 на AIX 6.1, и у меня это сработало. Если у вас все еще есть проблемы, я предлагаю вам связаться с вашим поставщиком услуг UniVerse.

Трудно прочитать ваш вывод, так как он объединяет строки.

Мой прогон через RAID показывает правильную информацию.

RAID BP SO
 SO:   1:  STR = "CIT":CHAR(225):"N, MOR 3200"
:: S
 SO:   2: STR2 = OCONV(STR, "MCT")
:: S
 SO:   3: PRINT STR
:: S
CITáN, MOR 3200
SO:   4: PRINT STR2
:: S
Citán, Mor 3200
 SO:   5: PRINT SEQ(STR2[4,1])
:: S
225

Тем не менее, у меня есть переменная LANG=en_US в моих переменных среды UNIX.

Таким образом, может быть проблема с вашей средой, в зависимости от того, какой LANG установлен, я предлагаю вам связаться с вашим провайдером U2 Maintenance.

Другие вопросы по тегам