J'ai une application Silverlight qui écrit des fichiers CSV, qui doivent être codées en ASCII (en UTF-8 provoque accentués caractères à montrer mal quand vous ouvrez les fichiers dans Excel).
Comme Silverlight n'a pas de classe Encoding.ASCII, j'en ai implémenté une comme suit. Il fonctionne pour moi, l'espoir qu'il est utile de vous aussi:
/// <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;
}
}
Comment les normes de codage de caractères sont-elles liées à l'encyrption? Si je comprends bien, SHA1 (ou tout autre algorithme de hachage) prend un flux d'octets et génère un hachage (également une courte séquence d'octets). Où l'encodage de caractères entre-t-il dans l'équation? – AnthonyWJones
Générer un hachage en C# (pour WP7) (Unicode) génère un hash différent de celui généré par PHP (ASCII). J'ai vu une autre question ici disant que l'utilisation de 2 encodages différents génère 2 hachages différents. – Dean