为什么OCONV()带有' MCT'代码改变原始字符串?

时间:2014-03-19 18:09:54

标签: universe u2 unidata

我有一些包含一些西班牙语字符的字符串,当我使用代码为OCONV()的U2&n '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 个答案:

答案 0 :(得分:1)

请注意,我创建了以下程序,但我没有看到问题。

  

CT BP SO

 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
 >

请注意,我在Windows上测试了UniVerse11.2.2。您可以尝试我从HS.SALES帐户提供的示例代码,并让我知道它的作用吗?

如果仍有问题,请告诉我们完整的UniVerse版本以及您运行此操作系统的操作系统。

添加信息: 注意在AIX 6.1上对UniVerse 11.1.1进行了测试,它对我有用。如果您仍然遇到问题,我建议您联系UniVerse维护提供商。

答案 1 :(得分:0)

由于它结合了线条,因此难以读取输出。

我的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

然而,我的UNIX环境变量中有LANG = en_US。

因此,您的环境可能存在基于LANG设置的问题,建议您与U2维护提供商联系。