我现在正在进行加密算法,需要加密包括德语在内的单词。所以我必须加密例如:ü,ä或ö这样的字符。
我有一个函数:
private static byte[] getBytesArray(string data)
{
byte[] array;
System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding();
array = asciiEncoding.GetBytes(data);
return array;
}
当数据是“ü”时,返回数组中的字节为63(因此是“?”)。如何返回ü字节?
我还尝试过:
private static byte[] MyGetBytesArray(string data)
{
byte[] array;
System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding();
Encoding enc = new UTF8Encoding(true, true);
array = enc.GetBytes(data);
return array;
}
但是在这种情况下,我得到数组中的2个字节:195和188。
UTF8Encoding
而不是ASCIIEncoding
。 - L.B7Fh
之上(请验证)。你可以尝试使用Encoding.Default
吗? - Angshuman AgarwalEncoding.Default
总是一个不好的选择,因为它是机器特定的。 - Marc GravellasciiEncoding
(它没有被使用),你的第二个例子就可以工作了。个人建议直接使用return Encoding.UTF8.GetBytes(data);
,但本质上是一样的。你期望得到什么值?为什么? - Marc Gravell