我有一些西班牙字符的字符串,當我用代碼'MCT'
使用U2的OCONV()
函數時,它將西班牙字符更改爲其他字符。有人知道嗎?爲什麼具有'MCT'代碼的OCONV()更改原始字符串?
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
我有一些西班牙字符的字符串,當我用代碼'MCT'
使用U2的OCONV()
函數時,它將西班牙字符更改爲其他字符。有人知道嗎?爲什麼具有'MCT'代碼的OCONV()更改原始字符串?
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
請注意,我創建了以下程序,但沒有看到問題。
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])
當我編譯並運行它,我得到以下幾點:我測試UniVerse11.2.2,在Windows
CITáN, MOR 3200
Citán, Mor 3200
225
>
注意。你可以試試我從HS.SALES帳戶提供的示例代碼,並讓我知道它做了什麼?
如果仍然有問題,請讓我們知道完整的UniVerse版本,操作系統您正在運行此。
補充信息: 注意到關於AIX 6.1上的UniVerse 11.1.1測試,它爲我工作。如果您仍然遇到問題,我建議您與UniVerse維修服務提供商聯繫。
字符我們用宇宙V11.1在Unix AIX版本6.1感謝的錯誤。我加入了調試器,並執行以下操作: – user1387287
我們在UNIX AIX版本6.1上使用Universe V11.1感謝。我通過調試器階梯和去下列:RAID BP TEST.CH TEST.CH:1:STR = 「CIT」:CHAR(225): 「N,MOR 3200」 ::小號 TEST.CH:2: STR2 = OCONV(STR, 「MCT」) :: STR/ STRING:T R L = 16'CITáN,MOR 3200' ::小號 TEST.CH:3:CRT STR :: STR2/ STRING:T R L = 16'CitÃ6n,MOR 3200' ::小號 CITáN,MOR 3200 TEST.CH:4:CRT STR2 ::小號 相關鏈接N,莫爾3200 – user1387287
TEST.CH:2:STR2 = OCONV(STR,「MCT」) :: STR/ STRING:T r L = 16'CITÃN,MOR 3200' :: S TEST.CH:3:CRT STR :: STR2/ STRING:T R L = 16'CitÃ3n,MOR 3200' ::小號 CITáN,MOR 3200 TEST.CH:4:CRT STR2 ::小號 Cit?n,Mor 3200 – user1387287
這是困難的,因爲它結合了線看你的輸出。
我通過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維修服務供應商。
您使用的是哪個版本的U2? UniData或UniVerse?根據您提供的示例,MCT正在進行數學創建小寫字符。使用高於ASCII 128的字符時,它會翻譯不正確。請確保你的數據庫設置爲接受Unicode的,但是這可能是在MCT與上述ASCI 128 –
@intl宇宙V11.1 – user1387287