RKSV Lib
Moderator: wriedmann
RKSV Lib
Hallo Franz,
diese beiden Strings sind identisch.
Der Unterschied wird sein, dass der String in X# möglicherweise als Unicode übergeben wird, die DLL sich aber Ansi erwartet.
Wie schaut die Methode ConvertJWSCompactToText() aus?
Wolfgang
diese beiden Strings sind identisch.
Der Unterschied wird sein, dass der String in X# möglicherweise als Unicode übergeben wird, die DLL sich aber Ansi erwartet.
Wie schaut die Methode ConvertJWSCompactToText() aus?
Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
RKSV Lib
Hallo Franz,
sorry, ich habe mich auf die beiden Aufrufe
bezogen.
Wolfgang
sorry, ich habe mich auf die beiden Aufrufe
Code: Select all
_oRKSVINT:ConvertJWSCompactToText(cJws, @cResult, @cAnswer)
Code: Select all
_oRKSVCom:ConvertJWSCompactToText(jwsCompact, @text, @errorMessage)
Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
RKSV Lib
Hallo Franz,
sorry, war dieses Wochenende krank im Bett.
Ich habe mich auf diesen Aufruf bezogen (ich nehme an, das ist X#): Ich denke, das sollte kein String sein, sondern ein byte[], also ein Array aus Bytes.
Wolfgang
sorry, war dieses Wochenende krank im Bett.
Ich habe mich auf diesen Aufruf bezogen (ich nehme an, das ist X#): Ich denke, das sollte kein String sein, sondern ein byte[], also ein Array aus Bytes.
Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
RKSV Lib
Hallo Franz,
das ist komisch, da kann ich mir keinen Reim drauf machen.
Base64 hat einen begrenzten Zeichensatz, und sollte eigentlich immun gegen Zeichensatz-Konvertierungen sein.
Kann es sein, dass es bereits vorher zu einer Verfälschung der Daten kommt?
Bekommst Du das in ein reproduzierbares kleines Beispiel rein?
Wolfgang
das ist komisch, da kann ich mir keinen Reim drauf machen.
Base64 hat einen begrenzten Zeichensatz, und sollte eigentlich immun gegen Zeichensatz-Konvertierungen sein.
Kann es sein, dass es bereits vorher zu einer Verfälschung der Daten kommt?
Bekommst Du das in ein reproduzierbares kleines Beispiel rein?
Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
-
- Posts: 774
- Joined: Wed May 17, 2017 8:50 am
- Location: Germany
RKSV Lib
Hallo Franz,Laut ILSpy ist es ein String, _oRKSVCom ist C# aus der ITG DLL.
LG Franz
Ich habe keine Lösung, aber poste mal den code der besagten ConvertJWSCompactToText() Methode. Der code der c# Methode sollte angezeigt werden wenn Du im ILSpy auf "ConvertJWSCompactToText" klickst. Evtl. fällt dem einen oder anderen dann dazu etwas ein.
Gruß
Karl-Heinz
RKSV Lib
Hallo Wolfgang,
der C# Code der Methode
Ich zeige mir den jwsCompact direkt vor dem Aufruf an, sieht genau so aus wie in VO, hast du ja auch in meinem Posting gesehen:
Der jwsCompact kann auch nicht falsch sein, denn wenn ich ihn mit VO über OLE decodiere, funktionierts.
der C# Code der Methode
Code: Select all
// RKSVComComplete.RKSVCOM
public bool ConvertJWSCompactToText(string jwsCompact, ref string text, ref string errorMessage)
{
bool result;
try
{
string[] array = jwsCompact.Split(new string[]
{
"."
}, StringSplitOptions.None);
string @string = Encoding.UTF8.GetString(RKSVLight.Base64UrlDecode(array[1]));
string str = Convert.ToBase64String(RKSVLight.Base64UrlDecode(array[2]));
text = @string + "_" + str;
result = true;
}
catch (Exception ex)
{
errorMessage = ex.Message;
result = false;
}
return result;
}
Code: Select all
? jwsCompact
lRetValue := _oRKSVCom:ConvertJWSCompactToText(jwsCompact, @text, @errorMessage)
? text, errorMessage
RKSV Lib
Hallo Wolfgang,
ich habs gefunden!
Wenn der jwsCompact String erstellt und in die MySQL DB gespeichert wird, kommt aus irgendeinem Grund ein chr(0) am Ende dazu. Wird der String dann eingelesen und decodiert, stört dieses chr(0) die C# Routine und es erfolgt die Fehlermeldung!
Wenn ich den gleichen String in VO über OLE an die C# Routine übergebe, dann funktioniert es! Anscheinend gibt es hier einen Unterschied bei der Übergabe über OLE und als String Parameter!
ich habs gefunden!
Wenn der jwsCompact String erstellt und in die MySQL DB gespeichert wird, kommt aus irgendeinem Grund ein chr(0) am Ende dazu. Wird der String dann eingelesen und decodiert, stört dieses chr(0) die C# Routine und es erfolgt die Fehlermeldung!
Wenn ich den gleichen String in VO über OLE an die C# Routine übergebe, dann funktioniert es! Anscheinend gibt es hier einen Unterschied bei der Übergabe über OLE und als String Parameter!