InterSystems Caché Base64 XML Decode - PullRequest
0 голосов
/ 09 мая 2018

В Intersystem Cache я экспортирую некоторые GLOBAL, используя

$ system.OBJ.Export ("GCL.GLB", "C: \ GCL.xml")

Теперь есть полеэто кодируется BASE64, например, следующая строка:

<Node><Sub>2</Sub>
<DataBase64>AgEDATECAQgBU2luZ2xlBATD+QQEkH4EBCD9BAQcAgIEBQE2RE4CAQIBAgECAQIBYwEJAWFmd2V6
aWcCASoBX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwIBFQFIb2dlIEhv
bmRzdHJhYXQgMTE1EwE3NDEzIENFLCBERVZFTlRFUgIBBQExQVMFATVBQwYBMzhHQg0BNjM4ODEs
MzU4NjM=
</DataBase64>
</Node>

Когда я декодирую данные base64 в UTF-8, я не получаю все данные, я слышал, что их нужно декодировать в IBM437, но потом явсе еще пропустите первые 3 поля, которые должны быть 3 числа длиной 5

Кто-то знает, какая кодировка правильная или как я могу узнать, какая кодировка мне нужна для этого?

Спасибо

1 Ответ

0 голосов
/ 09 мая 2018

Я не вижу проблем с этим Base64, у вас есть данные в формате $ LB.

USER>s b64="AgEDATECAQgBU2luZ2xlBATD+QQEkH4EBCD9BAQcAgIEBQE2RE4CAQIBAgECAQIBYwEJAWFmd2V6aWcCASoBX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwIBFQFIb2dlIEhvbmRzdHJhYXQgMTE1EwE3NDEzIENFLCBERVZFTlRFUgIBBQExQVMFATVBQwYBMzhHQg0BNjM4ODEsMzU4NjM="

USER>s data=$system.Encryption.Base64Decode(b64)                                 

USER>zw data                                                                    
data=$lb("","1","","Single",63939,32400,64800,540,0,"6DN","","","","","",$lb("afwezig","","________________________________________","","Hoge Hondstraat 115","7413 CE, DEVENTER",""),"1AS","5AC","38GB","63881,35863")
...