Konwersja utf-8 z pliku na ANSI

0

W jaki sposób można wczytać dane z pliku xml tak aby każdy znak zapisany w utf-8 przekonwertować na ANSI?

0

Każdy znak? IMHO to cały plik jest zapisany w określonym kodowaniu. I jaka w takim razie jest różnica między plikiem XML a innym?

0

Chodzi mi o to że jak mam test

string t1 = "prosty tekst"

to wykonuje najpier konwersje teksu do
byte[] dane = ASCIIEncoding.UTF8.GetBytes(t1);

nastepnie robie xor na każym bajcie tablicy dane

i po wykonaniu takiej peracji otrzymuje nowy string

string daneOut = ASCIIEncoding.UTF8.GetString(dane);

teraz zapisuje to do xml

<tekst> [daneOut] </tekst>

Czy bardzo proste szyfrowanie.
Niestety w drugą stronę to nie działa.

I nie za bardzo wiem czemu

0

Jak już masz zaszyfrowaną tablicę bajtów, to nie zamieniaj jej na "czystego" stringa, tylko zakoduj ją używając Base64:

byte[] zaszyfrowana = ...
string base64zaszyfrowanaStr = System.Convert.ToBase64String(zaszyfrowana);

A w drugą stronę:

byte[] base64zaszyfrowanaTab =  System.Convert.FromBase64String(base64zaszyfrowanaStr);
0
  1. Po pierwsze, to już na pierwszy rzut oka widać, że coś jest nie tak z tą drugą konwersją u Ciebie. Za pierwszym razem możesz sobie konwertować, ale jak już to zXORujesz, to jakim cudem chcesz to znowu przekonwertować, skoro to już nie jest tekst, tylko dane binarne?

  2. Tak jak kolega Kuba zauważył, jak już sobie swojego striga zakodujesz do UTFa, pozniej zaszyfrujesz XORem (wtedy tekst jest dalej w UTF, ale zaszyfrowany już) i wtedy musisz użyć kodowania, które dane binarne zmieni Ci na tekst, czyli na przykład właśnie base64.

  3. Reasumujac... SZYFROWANIE: tekst -> UTF -> XOR -> BASE64; DESZYFRACJA: unbase -> XOR;

  4. Jak Ci nie bedzie działac to cos masz nie tak z tym XORowanie. Wrzuc wtedy fragment kodu odpowiedzialny za to(ale nie wrzucaj calosci) to sie zobaczy, co i jak...

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