19. juli 2008 - 10:53Der er
15 kommentarer og 1 løsning
Ajax og ANSI
Jeg har et problem med at indlæse tekst filer, gemt i ANSI format, med ajax, spørgsmålet er om det overhovedet kan lade sig gøre eller om ajax kun kan forstå utf?
Den slags fejl opstår hyppigst, fordi eet led i kæden er glemt, for alle de elementer, der indgår i den kæde af ting, der resulterer i det, der skal være på websiden, skal bruge den samme kodetabel ...
-- så check database-encoding, herunder collation, at dine php-filer er gemt i det rette format, at serveren ikke sender en encoding-header, der afvger fra den encoding, du angiver i dokumentet !-)
Det er en ren txt fil, kunne være oprettet i notepad, så der er ikke så mange led i kæden, 1 txt fil og 1 html (php for at kunne lave sammenligningen) http://cgw.dk/test/test-ansi.php er en iso-8859-1 og skulle derfor kunne læse ANSI filer, hvilket man også kan hvis man includer den med php, men hvis man læser den ind med Ajax går det galt.
hentet med AJAX: include med php: Test af AJAX æøåÆØÅëêõôÔ
FF 2.0.0.14, også min gamle Mozilla 1.5b
Opera 9.51:
hentet med AJAX: Test af AJAX ����������� (spørgsmålstegn-symboler !-) include med php: Test af AJAX æøåÆØÅëêõôÔ
For såvidt er det korrekt, at Ajax ikke kan håndtere ANSI - derved, at JavaScripts ANSI-funktioner til encoding af URL'er forlængst er deprecated og erstattet af Unicode-funktioner. Vil man sende en query-streng til serveren - og ikke ønsker at bruge funktioner, der er deprecated - er man nødt til at bruge et Unicode tegnsæt.
Det er altså ikke Ajax, som ikke understøtter ANSI, men derimod JavaScript, som ikke længere understøtter ANSI i forbindelse med HTTP.
Naturligvis kan man godt bruge Ajax og ANSI sammen, hvis man undgår specialtegn i sine queries - men det finder jeg i hvertfald uholdbart =)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.