Ah, sry, da kam was durcheinander, so sollte das sein:
C#
private static String PrepareMessage(String xMessage)
{
var stringBuilder = new StringBuilder(xMessage.Normalize(NormalizationForm.FormD));
foreach (var keyValuePair in SPECIAL_DIACRITICS)
{
stringBuilder.Replace(keyValuePair.Key, keyValuePair.Value);
}
stringBuilder.Append(Convert.ToChar(0x0D));
stringBuilder.Append(Convert.ToChar(CalculateChecksum(stringBuilder.ToString())));
return stringBuilder.ToString();
}
private static byte CalculateChecksum(String xMessage)
{
byte checksum = 0x7F;
byte[] bytes = Encoding.ASCII.GetBytes(xMessage);
foreach (byte b in bytes)
{
checksum ^= b;
}
return checksum;
}
Alles anzeigen