Pobrałem stronę HTML, obrobiłem ją funkcjami do stringów i zapisałem w pliku tekstowym.
Notepad++ pokazuje, że plik jest kodowany w UTF-8 bez BOM, a sam plik wygląda przyzwoicie jeśli chodzi o kodowanie znaków.
Problem zaczyna się gdy próbuję wyświetlić jego zawartość. W konsoli dostaję coś takiego:
Vincent chce nad morze (2010)
W imi─Ö... (2013)
W kr─Ögu mi┼éo┼Ťci (2012)
Wałęsa. Człowiek z nadziei (2013)
We mgle (2012)
Wieczni chłopcy (2013)
Wielkie nadzieje (2012)
Wi─Öcej ni┼╝ miod (2012)
Wy┼Ťcig (2013)
Z mi┼éo┼Ťci do... (2012)
Ślepy traf (2013)
Śmierć człowieka na Bałkanach (2012)
┼╗ycie Adeli – Rozdzia┼é 1 i 2 (2013)
┼╗ywie Bie┼éaru┼Ť! (2012)
Załóżmy, że chcę przechowywać i wyświetlić ten tekst bez ogonków, czyli litery Ż jako Z, ą jako a, itd.
Co mogę zrobić by to osiągnąć?
Edit:
Napisałem taki programik:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char ch;
FILE *f = fopen("test.txt","rb");
while(!feof(f))
{
ch=fgetc(f);
printf("%c : %#x\n",ch,ch);
}
fclose(f);
return 0;
}
Zawartość test.txt to:
ąćęłńóśżź
Po uruchomieniu konsola wypisuje:
─ : 0xffffffc4
ů : 0xffffff85
─ : 0xffffffc4
ç : 0xffffff87
─ : 0xffffffc4
Ö : 0xffffff99
┼ : 0xffffffc5
é : 0xffffff82
┼ : 0xffffffc5
ä : 0xffffff84
├ : 0xffffffc3
│ : 0xffffffb3
┼ : 0xffffffc5
Ť : 0xffffff9b
┼ : 0xffffffc5
╝ : 0xffffffbc
┼ : 0xffffffc5
║ : 0xffffffba
: 0xffffffff
Każda z liter w test.txt jest reprezentowana przez dwa znaki takie jak powyższe. Czy znaczy to, że jedynym rozwiązaniem jest wykrywanie takich par i zastępowanie ich odpowiednimi literami?