Rune Jensen wrote:
> Hej, gruppe, og god baghjul
>
> Spørgsmål: Jeg bruger AJAX til at sende data til en ASP, som gemmer disse
> i en text-fil. Problemet er, jeg tror, dataene er i UTF-8,
Det _er_ de.
Din _server_ returnerer ikke charset, men der er en _BOM_[1] i din
_tekstfil_.
Du kan undersøge om ikke det er din ASP, der gemmer i UTF-8.
> det er nemlig,
> så vidt jeg har kunnet læse mig frem til, det, som bruges i AJAX.
Ikke heelt korrekt. Det ligger sådan at UTF-8 er den _foretrukne_ encoding
inden for XML, og ikke et _krav_.
> Jeg
> bruger så i ASP funktionen HTMLencode på de modtagne data, men den virker
> ikke efter hensigten,
Det gør den faktisk, forstået på den måde at HTMLencode laver sådan npget
her:
<fra txtfilen>
<strong>Your nick:</strong><em>@19:32:52 D. 28-12-2007</em>:
æœåÆØÅ<br />
</fra txtfilen>
> den laver danske karakterer om til dobbelte
> karakterer med mystisk udseende.
I utf-8 fylder alle tegn der har en 'værdi' > 127 mere end 1 byte. De 2
bytes, der udgør _1_ utf-8 'tegn' vises som _2_ enkelte 'tegn'.[2]
> Er der en metode til at enten hardcode en simulering af HTMLencode, så man
> undgår problemet, eller at få HTMLencode til at lave rigtig kovertering af
> UTF-8?
Du skal ikke bruge HTMLencode.
Løsning 1:
Gem din tekstfil i almindelig ISO8859-1(15) format.
Løsning 2 (Hvis det er muligt?)
Sæt din server op til at fortælle, at det er utf-8 i din Content-Type.
> Skal siges, jeg er ny i AJAX og har heller ikke meget forstand på det med
> tegnsæt, men vil meget gerne oplyses
Jeg har givet et par links herunder, men vær opmærksom på, at det kan
forvirre mere end det gavner.
[1] WARNING - might be heavy stuff:
<
http://unicode.org/faq/utf_bom.html>
[2] WARNING - can cause serious braindamage:
<
http://gedcom-parse.sourceforge.net/doc/encoding.html>
--
Med venlig hilsen
Stig Johansen