Wątek przeniesiony 2016-01-28 17:38 z C/C++ przez Shalom.

Nie mogę zmienic unicode do UTF8

0

Witam.
Mam problem z kodowaniem/dekodowaniem, a dokładniej z polskimi znakami...
Napisałem czat, ale jak piszę to ciągle zwraca "\u0142" kod kodowania/dekodownia:

public byte[] EncryptMessage(string text)
    {
        RijndaelManaged aes = new RijndaelManaged();
        aes.KeySize = 256;
        aes.BlockSize = 256;
        aes.Padding = PaddingMode.Zeros;
        aes.Mode = CipherMode.CBC;

        aes.Key = Encoding.UTF8.GetBytes(key);
        aes.IV = Encoding.UTF8.GetBytes(iv);

        ICryptoTransform AESEncrypt = aes.CreateEncryptor(aes.Key, aes.IV);
        byte[] buffer = Encoding.UTF8.GetBytes(text);

        return AESEncrypt.TransformFinalBlock(buffer, 0, buffer.Length);
    }

    public string DecryptMessage(byte[] text)
    {
        RijndaelManaged aes = new RijndaelManaged();
        aes.KeySize = 256;
        aes.BlockSize = 256;
        aes.Padding = PaddingMode.Zeros;
        aes.Mode = CipherMode.CBC;

        aes.Key = Encoding.UTF8.GetBytes(key);
        aes.IV = Encoding.UTF8.GetBytes(iv);

        ICryptoTransform AESDecrypt = aes.CreateDecryptor(aes.Key, aes.IV);
        byte[] buffer = text;

        return Encoding.UTF8.GetString(AESDecrypt.TransformFinalBlock(buffer, 0, buffer.Length));
    }

Czy jest jakiś sposób na zmianę tego ?

0

Czym jest key i iv?
Gdzie to piszesz że dostajesz "\u0142"?

Podaj przykład wywołania tego kodu.

0

Napisałem: "Napisałem czat, ale jak piszę na nim to ciągle zwraca "\u0142""
Dodam że klient jest w C#, a server w PHP (WebSocket)
Co tutaj jest niezrozumiałego ?

0

Przypuszam ze na koniec po dekodowaniu musisz sobie przywrócic swoje kodowanie pierwotne bo nie bylo to utf-8.

0

Ale jak to wykonać ?
Mam w DecryptMessage:
return Encoding.UTF8.GetString...

1 użytkowników online, w tym zalogowanych: 0, gości: 1