ďťż

Ładny brzuch

Witam.
Ostatnio Bl4cK h4t podpowiedział mi co użyć do stworzenia w programie (edytorze) obsługi strony kodowej plików.
Ale mam z tym pewien problem.
Na podstawie tego:
http://synapse.arara...p/synachar.html
Stworzyłem sobie funkcję, która zwraca numer użytego w pliku kodowania:
0: domyślne (OS), 1: ANSI, 2: UTF, 3: ISO

Ponieważ program oparty jest na SynEdit mogę do niego wprowadzać wyłącznie tekst w ANSI (win-1250), a dopiero potem go konwertować wg. potrzeb. Np. aby wygenerować podgląd.
Konwertuję w bardzo prosty sposób:
case glowna.GetCharser of 0: sl.Text := HTMLCode; 1: sl.Text := HTMLCode; 2: sl.Text := CharsetConversion(HTMLCode, CP1250, UTF_8); 3: sl.Text := CharsetConversion(HTMLCode, CP1250, Iso_8859_2); end;
No i to działa. W podobny sposób zapisuję również plik.
Ale jak go wczytuję także musze go skonwertować - do ANSI (win-1250) aby SynEdit wyswietlał porpawnie znaki.
Ale żeby skonwertować znaki, musze znać strone kodową pliku - i tu jest właśnie problem. Nie wiem jak ją odczytać.




Witam.
Ostatnio Bl4cK h4t podpowiedział mi co użyć do stworzenia w programie (edytorze) obsługi strony kodowej plików.
Ale mam z tym pewien problem.
Na podstawie tego:
http://synapse.arara...p/synachar.html
Stworzyłem sobie funkcję, która zwraca numer użytego w pliku kodowania:
0: domyślne (OS), 1: ANSI, 2: UTF, 3: ISO

Ponieważ program oparty jest na SynEdit mogę do niego wprowadzać wyłącznie tekst w ANSI (win-1250), a dopiero potem go konwertować wg. potrzeb. Np. aby wygenerować podgląd.
Konwertuję w bardzo prosty sposób:
case glowna.GetCharser of 0: sl.Text := HTMLCode; 1: sl.Text := HTMLCode; 2: sl.Text := CharsetConversion(HTMLCode, CP1250, UTF_8); 3: sl.Text := CharsetConversion(HTMLCode, CP1250, Iso_8859_2); end;
No i to działa. W podobny sposób zapisuję również plik.
Ale jak go wczytuję także musze go skonwertować - do ANSI (win-1250) aby SynEdit wyswietlał porpawnie znaki.
Ale żeby skonwertować znaki, musze znać strone kodową pliku - i tu jest właśnie problem. Nie wiem jak ją odczytać.

Rozumiem, że chcesz skonwertować 8859_2 do 1250 użyj StringReplace() tablica ASCII dostarczy ci potrzebnych danych
Natomiast do konwersji utf8 na 1250 jest gotowa funkcja niepamiętam jej w tej chwili

ale ja nie mam problemu z kownersją tylko rozpoznaniem z czego na co mam konwertować.
Przy załadowaniu pliku musze go zmienic na ASCII, ale nie wiem czy z UTF-a czy z ISO. A muszę to znać.
Użytkownik DJ Mentos edytował ten post 12 kwiecień 2008, 15:56

ale ja nie mam problemu z kownersją tylko rozpoznaniem z czego na co mam konwertować.
Przy załadowaniu pliku musze go zmienic na ASCII, ale nie wiem czy z UTF-a czy z ISO. A muszę to znać.

no i tutaj nie ma dobrych sposobów. o ile jest BOM ( http://unicode.org/faq/utf_bom.html ) to można rozpoznać ... a jak nie ma, to gorzej :]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •