[delphi]memo SaveToFile encoding?

0

zapisuje zawartosc memo do pliku. W memo sa polskie znaki óżźćąę, w zapisanym pliku owe znaki sa widoczne normalnie. Gdy wgrywam plik na server www i odpalam przez przegladarke nie widze polskich znaków . Wie ktos moze dlaczego?

0

może dlatego że trza te polskie znaki przkonwertować do iso albo utf :|

0

jesli twoj plik bedzie wygladal tak:

<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">
</HEAD>
<BODY>

      ......  i tutaj twoj tekst z memo

</BODY>
</HTML>

To przegladarka elegancko bedzie wczytywac polskie znaki

0
dRum napisał(a)
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">

To przegladarka elegancko bedzie wczytywac polskie znaki

Mialem kiedys identyczny problem ale pamietam ze wlasnie ISO-8859-2 nie dzialalo u mnie i musialem UFT lub WINDOWS-1252 kodowac i dzialalo super, ale moze u Ciebie ISO-8859-2 zadzialac czemu nie ;)

0

dziwna sprawa probowalem kodowac jak mowicie nic to nie daje,
poza tym zapisana tresc z memo jest potem w php zalaczana <?include .. ?> wiec jest ustawione charset=iso-8859-2.

Powiedzcie mi czy jak napiszecie w notatniku tekst:

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2"> </head> <body>

ąśżźęłó

</body> </html>

i wgracie to na server to czy widzicie wszytkie znaki polskie?
Bo ja pisze w notatniku po wgraniu na server widze wszytko oprocz ą ś ź

EDIT:
Widze ze trzeba bedzie podejsc do sprawy inaczej i zamieniac polskie znaki na:
óśćłaśżź

0

To jest Windows... I to w z memo w pliku jest zakodowane Windows-1252 . Dlatego piszesz w tym htmlu zamiast ISO-8859-2 po prostu Windows-1252...

0

ąśżźęłó - a jak nie podziała windows-1252 to zadziała windows-1250 :)

0

zrobilem jak mowisz sa tam znaki
łżźąśćłóę

I co widzisz je normalnie ? Zmien sobie w przegladarce kodowanie na inne np. iso-8859-2
http://www.divemax.pl/pdm/d.htm

Moze po prostu lepiej zamieiac ą na ą napisalem cos takiego, moze ktos wymyslil cos krotszego i sprytniejszego?

procedure zamien();
var i:integer;
znak:char;
wynik:string;
begin
for i:=1 to length(form1.memo1.Text) do
begin
znak:=form1.memo1.Text[i];
if znak='ą' then
begin
znak:='&';
wynik:=wynik+znak;
znak:='#';
wynik:=wynik+znak;
znak:='2';
wynik:=wynik+znak;
znak:='6';
wynik:=wynik+znak;
znak:='1';
wynik:=wynik+znak;
znak:=';';
end;
wynik:=wynik+znak;
end;
form1.memo2.text:=wynik;
end;

EDIT:
Jestes boski rzeczywiscie windows-1250 podzialalo :d

0

Kodowania Windows-1250 nie powinno się uzywać.

A co do tej procedury zamiany - lepsze by było proste użycie StringReplace() ;)

0

no tak ;P [rotfl]

memo2.text:=StringReplace(memo1.Text,'ą','ź',[rfReplaceAll, rfIgnoreCase]);

wniosek z tego taki ze lepiej jednak zamieniac polskie znaki i niepierdic sie z kodowaniem.

0

A moze po prostu UTF-8? Wywolanie jednej gotowej funkcji i juz ... :)

0
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Windows-1250">

Dziala w 100% moge to potwierdzic bo wczesniej nie pisalem z domu a teraz mam pewnosc ze to jest wlasnie to kodowanie ;) Windows-1250 i nie trzeba zamieniac zadne ąść...

0
mitring napisał(a)
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Windows-1250">

Dziala w 100% moge to potwierdzic bo wczesniej nie pisalem z domu a teraz mam pewnosc ze to jest wlasnie to kodowanie ;) Windows-1250 i nie trzeba zamieniac zadne ąść...
Nie jest tak różowo gdyż to działa tylko pod windowsami

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