Hallo,
hab mir vor kurzem im Kunstunterricht einen Algorithmus zur Base64-Kodierung erarbeitet (war halt langweilig...^^). Soweit funktioniert der auch ganz gut, nur bei Umlauten wie z.B. ü gibts Probleme, da er scheinbar mein unsigned char nicht so recht akzeptieren will:
In in[0] steht das ü. Wenn ich das Programm starte und das ü mit cin.get() einlese und meiner kodierfunktion übergebe, wird mir als ascii-code 129 statt 252 geliefert, dementsprechend wird dann auch die kodierung falsch. Wenn ich jetzt aber den ascii-code der Variable i ausgeben lasse, kommt das richtige Ergebnis. Wisst ihr vielleicht woran das liegen könnte?
Gruß
cesupa
hab mir vor kurzem im Kunstunterricht einen Algorithmus zur Base64-Kodierung erarbeitet (war halt langweilig...^^). Soweit funktioniert der auch ganz gut, nur bei Umlauten wie z.B. ü gibts Probleme, da er scheinbar mein unsigned char nicht so recht akzeptieren will:
Code:
void decode(unsigned char in[3],unsigned char out[4],int len)
{
char buf[256];
unsigned char i='ü';
cout<<endl<<endl<<"Converting: "<<(unsigned char)(in[0])<<in[1]<<in[2]<<endl<<endl;
cout<<(unsigned int)((unsigned char)in[0])<<endl;
itoa((unsigned char)(in[0]),buf,2);
cout<<buf<<endl;
//Kodierung...
}
In in[0] steht das ü. Wenn ich das Programm starte und das ü mit cin.get() einlese und meiner kodierfunktion übergebe, wird mir als ascii-code 129 statt 252 geliefert, dementsprechend wird dann auch die kodierung falsch. Wenn ich jetzt aber den ascii-code der Variable i ausgeben lasse, kommt das richtige Ergebnis. Wisst ihr vielleicht woran das liegen könnte?
Gruß
cesupa