Ich möchte gerne eine Prüfsummenberechnung implementieren. Habe ich aber noch nie gemacht. Alles was ich habe ist die im Anhang gezeigte Formel und davon das MOD 10. Soweit ich als Schwachmathematiker das beurteilen kann, gibt es da keine Gewichtung sondern lediglich die Quersumme der einzelnen
ASCII-Codes MOD 10. Soweit richtig?
Zweite Frage: Wie verfahre ich mit Non-
ASCII-Zeichen? Ordinalposition des Widechar oder die Bytes einzeln? Der zugrunde liegende Standard stammt noch aus der Vor-
Unicode-Ära bzw. dem letzten Jahrtausend.
"Quersumme" gibt es eigentlich nur bei Zahlen. Gemeint ist die Summe der
ASCII-Codes aller Zeichen im String. Und nein, eine Gewichtung nach Position gibt es da nicht. Deshalb ist diese Prüfsumme anfällig führ Zeichendreher:
Pruefsumme('abc') = Pruefsumme('bac')
Alles ist andere als ideal.
Was Non-
ASCII angeht, so kann dir das keiner von uns sagen sondern nur derjenige, der dir die Vorgabe gemacht hat.
Ohne weitere Angaben würde ich bei Non-
ASCII eine
Exception werfen (und dabei auf denjenigen zielen, der die Vorgabe gemacht hat).