Avatar billede nyp Nybegynder
19. juli 2008 - 10:53 Der 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?

eks:
indlæser ANSI tekst fil:
http://cgw.dk/test/test-ansi.php

Indlæser UTF-8 tekst fil:
http://cgw.dk/test/test-utf-8.php
Avatar billede w13 Novice
19. juli 2008 - 15:18 #1
Jeg kunne sagtens gøre det med ISO-8859-1 og AJAX, før jeg gik over til UTF-8.
Hmm, men kan ikke rigtig se fejlen i din kode.
Avatar billede roenving Novice
19. juli 2008 - 15:34 #2
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 !-)
Avatar billede nyp Nybegynder
19. juli 2008 - 18:47 #3
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.
Avatar billede roenving Novice
20. juli 2008 - 02:44 #4
-- og det er ikke sådan at din udbyder kaster en header på ?-)
Avatar billede thesurfer Nybegynder
20. juli 2008 - 03:28 #5
Hvis jeg åbner  i Opera, står der "Test af AJAX " efterfulgt af 11 spørgsmålstegn:

Test af AJAX �����������

Hvis jeg downloader filen, og åbener den i EditPlus, kan jeg se at formatet er "Unix" og "ANSI".


Passer disse oplysninger med de forventede data?
Avatar billede thesurfer Nybegynder
20. juli 2008 - 03:29 #6
Rettelse:

Hvis jeg åbner http://cgw.dk/test/ansi.txt i Opera, står der "Test af AJAX " efterfulgt af 11 spørgsmålstegn:

Test af AJAX �����������

Hvis jeg downloader filen, og åbener den i EditPlus, kan jeg se at formatet er "Unix" og "ANSI".


Passer disse oplysninger med de forventede data?
Avatar billede thesurfer Nybegynder
20. juli 2008 - 03:32 #7
I Firefox v2.0.0.15 ser står der "" efterfulgt af æøå små og storebogstaver, og derefter "ëêõôÔ":

Test af AJAX æøåÆØÅëêõôÔ

Og det samme i Internet Explorer 6 SP2.
Avatar billede roenving Novice
20. juli 2008 - 04:12 #8
Tjahh det jeg får er:

hentet med AJAX:
Test af AJAX ?????
include med php:
Test af AJAX æøåÆØÅëêõôÔ

IE6 sp2 ...
Avatar billede roenving Novice
20. juli 2008 - 04:21 #9
Og med FireFox:

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 æøåÆØÅëêõôÔ
Avatar billede nyp Nybegynder
20. juli 2008 - 09:32 #10
"-- og det er ikke sådan at din udbyder kaster en header på ?-)" Udbyder kaster ingen header på, så skulle php include vel også fejle.

"Passer disse oplysninger med de forventede data?" nja :) havde forventet "Test af AJAX æøåÆØÅëêõôÔ" men at det er en "Unix" og "ANSI" er forventet.

Har ændret lidt i test filen:
ANSI fil hentet med AJAX: giver underlige tegn;
Avatar billede nyp Nybegynder
20. juli 2008 - 09:39 #11
-- fik ikke det hele med --
ANSI fil hentet med AJAX:  giver underlige tegn, forventet at kunne se special tegn

ANSI fil include med php: tegn er ok, som forventet

UTF-8 fil hentet med AJAX: viser tegn rigtig, men forventet at se tegn som ved "UTF-8 fil include med php:"

UTF-8 fil include med php: vis tegn forkert som forventet


For mig ser det ud som om Ajax ikke kan håndtere ANSI eller også der der fejl i min Ajax kode
Avatar billede olebole Juniormester
20. juli 2008 - 21:46 #12
<ole>

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  =)

/mvh
</bole>
Avatar billede olebole Juniormester
20. juli 2008 - 21:47 #13
w13 >> derfor vil jeg også tillade mig at anse din første kommentar, som værende mere end en tilsnigelse  ;o)
Avatar billede nyp Nybegynder
20. juli 2008 - 22:23 #14
Tak for svaret olebole, det var godt nok ikke det jeg havde håbet, men det lyder rigtig, så smider du et svar.
Avatar billede w13 Novice
20. juli 2008 - 23:26 #15
Du har faktisk ret, Ole. Nu jeg tænker mig om, havde jeg netop problemer med Æ, Ø og Å.
Avatar billede olebole Juniormester
21. juli 2008 - 13:56 #16
For at være lidt mere præcis, så understøtter vistnok alle browsere endnu JS' to deprecated'ede funktioner 'escape' og 'unescape' - men man bør efter min mening så vidt muligt undgå deprecated'ede ting ... uagtet, om de stadig understøttes af browserne  ;o)
    http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Deprecated_Features#Escape_Sequences

- aller nederst
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester