aasahMedlem sedan mars 20034 471 inlägg Servern bytte teckenkodning för ett bra tag sedan, och nu vill jag lösa de uppkomna problemen. När jag försöker validera min kod, säger validatorn att servern skickar utf-8. Så då ändrar jag
content="text/html; charset=ISO-8859-1"
till
content="text/html; charset=utf-8"
- Borde inte det lösa problemet?
- Jag har smileys som börjar med '§' (gissa varför ;)) och oavsett om charset är utf-8 eller ISO-8859-1 så får jag följande resultat på de sidor där smileysen står:
//Med både ISO och utf-8
Sorry, I am unable to validate this document because on line 50 it contained one or more bytes that I cannot interpret as utf-8 (in other words, the bytes found are not valid values in the specified Character Encoding). Please check both the content of the file and the character encoding indication.
The error was: utf8 "\xA7" does not map to Unicode
Va? Kan man inte skriva §, ´ (accent egy) och dylikt i utf-8? ?? Hur löser man det?
tantenMedlem sedan nov. 20051 596 inlägg Lite osäker på om det fungerar. Men vad händer om du byter ut § mot §
aasahMedlem sedan mars 20034 471 inlägg Hmm... Det löser problemet, men är det verkligen enda lösningen?
Och vad händer i nästa steg? Om någon klickar på §-evil smileyn, så visas §-evil i texarean (koden §-evil klistras in). I nästa steg (när formuläret postas) sparas det som § eller § då?
('-' med för att stoppa wF från att ersätta ovanstående text med smiley...)
spangoMedlem sedan juni 20008 205 inlägg
aasah skrev:
När jag försöker validera min kod, säger validatorn att servern skickar utf-8. Så då ändrar jag
content="text/html; charset=ISO-8859-1"
till
content="text/html; charset=utf-8"
- Borde inte det lösa problemet?
Bara om du också sparar dokumentet som UTF-8 ;)
Problemet du har kommer av att du skickar ut en latin1-§, vilket inte är ett giltigt tecken i UTF-8.
tantenMedlem sedan nov. 20051 596 inlägg § räknas väl till reserverade tecken och ska förmodligen behandlas likadant som t.ex. &.
Förmodar att man använder någon regexp eller något i scriptet.
Men här cyklar jag :-)
aasahMedlem sedan mars 20034 471 inlägg
spango skrev:
Bara om du också sparar dokumentet som UTF-8 ;)
Problemet du har kommer av att du skickar ut en latin1-§, vilket inte är ett giltigt tecken i UTF-8.
Vänta ett tag... Hur gör jag det? Sitter på en vanlig PC (Win XP) men laddar upp filen till en server som tydligen sparar i utf-8. Blir det inte UTF-8 på servern då??? Spelar stora/små bokstäver roll i 'UTF'?
tanten - Det låter underligt. På andra ställen i koden har jag motsvarande problem med é tex. é kan knappast vara ett reserverat tecken... Det verkar mer vara problem med de tecken som kräver mer än en bit för att lagras?
tantenMedlem sedan nov. 20051 596 inlägg á för á, é för é även om det nu inte var det du frågade om.
Säkert så som spango säger...
spangoMedlem sedan juni 20008 205 inlägg
aasah skrev:
Vänta ett tag... Hur gör jag det?
Det beror på vilken editor du har. I en riktig HTML-editor borde det inte behövas (den ska kolla vad du anger för kodning i meta-taggen), men i alla vettiga editorer kan man ange vilken kodning man vill använda.
aasah skrev:
laddar upp filen till en server som tydligen sparar i utf-8. Blir det inte UTF-8 på servern då???
Nej, det är inte den som "sparar" som UTF-8, det är bara att UTF-8 är dess defaultkodning. Således antar den att alla filer är UTF-8, den tar inget ansvar för att de faktiskt är det.
aasah skrev:
Spelar stora/små bokstäver roll i 'UTF'?
Error: Your query makes no sense ;) UTF-8 är bara ett sätt att koda Unicode på. Stora/små bokstäver spelar precis lika mycket/lite roll som i t.ex. ISO-8859-1, d.v.s. det beror helt och hållet på vad texten är för nåt.
aasah skrev:
tanten - Det låter underligt. På andra ställen i koden har jag motsvarande problem med é tex. é kan knappast vara ett reserverat tecken... Det verkar mer vara problem med de tecken som kräver mer än en bit för att lagras?
Ett typiskt tecken på att man sparat som Latin1 men skickar som UTF-8.
aasahMedlem sedan mars 20034 471 inlägg Tack för ett mycket upplysande svar spango! :birp
spango skrev:
Nej, det är inte den som "sparar" som UTF-8, det är bara att UTF-8 är dess defaultkodning. Således antar den att alla filer är UTF-8, den tar inget ansvar för att de faktiskt är det.
Och det finns inget sätt att få servern att istället säga ISO när filen faktiskt ÄR ISO-kodad? :q Vore inte det enklare?
spango skrev:
aasah skrev:
Spelar stora/små bokstäver roll i 'UTF'?
Error: Your query makes no sense ;) UTF-8 är bara ett sätt att koda Unicode på. Stora/små bokstäver spelar precis lika mycket/lite roll som i t.ex. ISO-8859-1, d.v.s. det beror helt och hållet på vad texten är för nåt.
Missförstånd! Det där var inte bra uttryckt av mig... Jag menade spelar det någon roll om jag skriver:
content="text/html; charset=utf-8"
<!-- eller -->
content="text/html; charset=UTF-8"
??
dAEkMedlem sedan feb. 20041 816 inlägg
aasah skrev:
Jag menade spelar det någon roll om jag skriver:
content="text/html; charset=utf-8"
<!-- eller -->
content="text/html; charset=UTF-8"
??
Nope, det är ingen skillnad vare sig i http eller html. :)
spangoMedlem sedan juni 20008 205 inlägg
aasah skrev:
Och det finns inget sätt att få servern att istället säga ISO när filen faktiskt ÄR ISO-kodad? :q Vore inte det enklare?
Man kan ju tycka det, men då måste webbservern inspektera varje fil innan den skickar iväg den, vilket ganska rejält skulle sänka prestandan rätt rejält. Dessutom finns det fler teckeuppsättningar än bara UTF-8 och ISO-8859-1, det kan vara ISO-8859-2, ISO-8859-3, ..., ISO-8859-14, US-ASCII, UTF-7, UTF-16, UTF-32... och så vidare. Vissa går inte att skilja på, åtminstone inte i det generella fallet.
zcorpanMedlem sedan dec. 20042 245 inlägg
spango skrev:
Problemet du har kommer av att du skickar ut en latin1-§, vilket inte är ett giltigt tecken i UTF-8.
s/ett giltigt tecken/en giltig byte-sekvens/ ;)
aasahMedlem sedan mars 20034 471 inlägg
spango skrev:
Det beror på vilken editor du har. I en riktig HTML-editor borde det inte behövas (den ska kolla vad du anger för kodning i meta-taggen), men i alla vettiga editorer kan man ange vilken kodning man vill använda...
I min editor Crimson Editor finns två val:
Save as utf-8 with BOM
Save as utf-8 without BOM
Vilket ska jag välja och vad står "BOM" för? :q
jarvkloMedlem sedan juli 20013 378 inlägg Hmm...
BOM == Byte Order Mark, dvs ett par inledande bytekode som har speciell betydelse när de ligger i början av textfiler som lagras i vissa typer av Uniciodeformat ("UTF").
Mitt tips är att "köra utan" eftersom det är känt för att dels inte tillföra något i just UTF-8 (om jag inte missupfattar det när vi diskuterade runt ämnet i http://www.webforum.nu/showthread.php?t=150873 ) och dels är känt för att skapa fler problem än det löser om man skulle råka konfigurera någon Serverside-Script-sida lite "slarvfeligt".
aasahMedlem sedan mars 20034 471 inlägg Tusen tack jarvklo! :birp