यह अपने आप को लागू करने के लिए आसान है, यूनिकोड ASCII कोड के साथ गड़बड़ कभी नहीं Excel में फ़ाइलों को खोलते समय गलत दिखाने के लिए वर्ण)।
चूंकि सिल्वरलाइट में एन्कोडिंग.एएससीआईआई वर्ग नहीं है, इसलिए मैंने निम्नानुसार एक कार्यान्वित किया है। यह मेरे लिए काम करता है, आशा है कि यह रूप में अच्छी तरह आप के लिए उपयोगी होता है:
/// <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;
}
}
स्रोत
2010-10-26 10:43:56
एनक्रिप्शन से संबंधित चरित्र एन्कोडिंग मानकों को कैसे करता है? जैसा कि मैं समझता हूं कि SHA1 (या कोई अन्य हैशिंग एल्गोरिदम) बाइट्स की एक धारा लेता है और एक हैश उत्पन्न करता है (बाइट्स का एक छोटा अनुक्रम भी)। चरित्र एन्कोडिंग समीकरण में कहां प्रवेश करता है? – AnthonyWJones
वर्तमान में सी # (डब्ल्यूपी 7 के लिए) में एक हैश उत्पन्न करना (यूनिकोड) एक अलग हैश उत्पन्न करता है जिसके लिए PHP जेनरेट (ASCII) उत्पन्न होता है। मैंने यहां एक और सवाल देखा कि 2 अलग-अलग एन्कोडिंग का उपयोग करके 2 अलग हैश उत्पन्न होते हैं। – Dean