Почему 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.