ich eine Silverlight-Anwendung, die CSV-Dateien schreibt, die in ASCII codiert werden müssen (unter Verwendung von UTF-8 akzentuierte verursacht Zeichen, die falsch angezeigt werden, wenn Sie die Dateien in Excel öffnen).
Da Silverlight keine Klasse Encoding.ASCII hat, habe ich eine wie folgt implementiert. Es funktioniert für mich, hoffe, es Ihnen auch nützlich ist:
/// <summary>
/// Silverlight doesn't have an ASCII encoder, so here is one:
/// </summary>
public class AsciiEncoding : System.Text.Encoding
{
public override int GetMaxByteCount(int charCount)
{
return charCount;
}
public override int GetMaxCharCount(int byteCount)
{
return byteCount;
}
public override int GetByteCount(char[] chars, int index, int count)
{
return count;
}
public override byte[] GetBytes(char[] chars)
{
return base.GetBytes(chars);
}
public override int GetCharCount(byte[] bytes)
{
return bytes.Length;
}
public override int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex)
{
for (int i = 0; i < charCount; i++)
{
bytes[byteIndex + i] = (byte)chars[charIndex + i];
}
return charCount;
}
public override int GetCharCount(byte[] bytes, int index, int count)
{
return count;
}
public override int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex)
{
for (int i = 0; i < byteCount; i++)
{
chars[charIndex + i] = (char)bytes[byteIndex + i];
}
return byteCount;
}
}
Wie wirken sich Zeichencodierungsstandards auf die Verschlüsselung aus? Wie ich es verstehe, nimmt SHA1 (oder ein anderer Hash-Algorithmus) einen Strom von Bytes und erzeugt einen Hash (auch eine kurze Folge von Bytes). Wo tritt die Zeichencodierung in die Gleichung ein? – AnthonyWJones
Gegenwärtig erzeugt das Generieren eines Hashs in C# (für WP7) (Unicode) einen anderen Hashwert, für den PHP generiert (ASCII). Ich sah eine andere Frage hier, die sagte, dass die Verwendung von 2 verschiedenen Kodierungen 2 verschiedene Hashes generiert. – Dean