Avatar billede krogstrup Nybegynder
28. september 2006 - 10:37 Der er 11 kommentarer

Problemer med UTF-8

Hej alle

Da jeg står overfor at skulle launche et site hvor der skal bruges kinesiske tegn, har jeg rodet en del med UTF-8

Jeg har:

1) brugt denne meta i headeren:
<meta http-equiv="content-type" content="text/html; charset=UTF-8">

2) gemt alle asp filer i UTF-8 encoding

Men jeg blir ved med at støde på problemer i forhold til visningen af danske specialtegn. Dvs. at f.eks. æøå ikke vises korrekt, når de er skrevet direkte ind i ASP filen. Men gemmer jeg æøå i min access database og dernæst trækker det ud og viser det på en ASP side, ja så vises det korrekt.

Jeg fatter det ikke rigtig ?!?

Kender nogen af jer til en grundig gennemgang af hvordan man med success kan benytte UTF-8 for at sikre at alle typer tegn kan håndteres i websitet ?

Alle erfaringer modtages med stor tak !!!

:-)

Hilsen David
Avatar billede karmicmind Nybegynder
28. september 2006 - 11:58 #1
Måske sender din server en anden MIME-type med et andet karaktersæt end dit metatag.. Hvis det er tilfældet, så er det HTTP headeren der gælder..

Nu kender jeg ikke ASP, men var det PHP kunne du rette det med
<?php header("Content-type: text/html; charset=utf-8"); ?>

Jeg ku forestille mig der er en lignende funktion i ASP..

Alternativt kunne du rette i webserverens opsætning for default karaktersæt.. Det ville nok være det bedste..
Avatar billede krogstrup Nybegynder
28. september 2006 - 12:08 #2
men det er vel problemtatisk at rette i serverens opsætning for default karaktersæt hvis jeg har andre sites liggende der ikke bruger utf-8 ?
Avatar billede karmicmind Nybegynder
28. september 2006 - 12:13 #3
Det er selvfølgelig rigtigt.. Men måske kunne du helt fjerne default charset fra serveren, sådn at det kan defineres i HTML-koden istedet..
Avatar billede krogstrup Nybegynder
28. september 2006 - 12:22 #4
muligvis. jeg roder lidt videre med det - har muligvis fundet min "bug".
Har brugt Homesite i mange år, og det viser sig at den muligvis ikke er særlig god til at håndtere utf-8 encodede filer...

Så nu prøver jeg at rode lidt med Dreamweaver i stedet...
Avatar billede karmicmind Nybegynder
28. september 2006 - 12:29 #5
En lille hjælp til at finde ud af hvilket tegnsæt browseren egentlig bruger lige nu:

Kig i Vis-menuen under tegnsæt..
Avatar billede olebole Juniormester
28. september 2006 - 12:46 #6
<ole>

Krogen, du kan se, hvad serveren sætter af MIME-types (herunder tegnsæt) i denne version af W3C's validator (Husk, at 'Verbose Output' skal være checked):
    http://validator.w3.org/detailed.html

PHP-linjen, der vises i (28/09-2006 11:58:22) skrives øverst i hver fil ... det er ikke en ændring i server-opsætningen  ;o)

/mvh
</bole>
Avatar billede olebole Juniormester
28. september 2006 - 12:49 #7
- jeg er ikke sikker, men jeg kunne forestille mig, den hedder sådan i VBS (under ASP):
    <%Response.ContentType = "text/html; charset=utf-8"%>
Avatar billede krogstrup Nybegynder
28. september 2006 - 13:16 #8
tak for input Ole :-)
Avatar billede olebole Juniormester
28. september 2006 - 14:25 #9
Selvtak ... lidt mere forklaring: Der er to steder, du kan sætte tegnsættet!
1) I en Content-Type header fra serveren (det, jeg ovenfor kaldte MIME-type)
2) I et meta-element - skrevet i dokumentets head-element

Hvis der sættes forskellige tegnsæt de to steder, vil 1 override 2. Derfor er det ikke nok at rette en evt. Content-Type meta  ;o)

Når du skriver ø'er, æ'er, eller andre sære tegn direkte i dokumentet, kan du under PHP bruge 'utf8_encode':
    http://dk.php.net/manual/da/function.utf8-encode.php

- hvorimod strenge fra MySQL er korrekt formateret (hvis ellers det korrekte tegnsæt også er valgt her).
Jeg kunne forestille mig, du kan gøre noget lignende i VBS  :)
Avatar billede krogstrup Nybegynder
28. september 2006 - 15:09 #10
jeg har nu delvist fået løst mine problemer, men står nu tilbage med et meget mærkeligt fænomen...

hvis jeg på et site der ligger lokalt på min compuer indtaster nogle specialtegn i databasen via et cms system (som du kører utf-8 baseret), ja så gemmes disse tegn fuldstændig korrekt i databasen og kan også hentes ud igen og vises korrekt.

MEN, når jeg så uploader sitet til serveren, så sker der et eller andet med indholdet i databasen (som er en ms Access) således at specialtegnene ikke længere kan vises korrekt i browseren.

Hvis jeg så når sitet ligger online på serveren går ind i cms systemet og igen indtaster specialtegnene, ja så vises de igen korrekt.

Der sker altså en fysisk ændring af databasens indhold når den uploades fra min pc´er til serveren.

Jeg kan ikke finde hoved og hale i det overhovedet ?!?

Hvis jeg uploader asp filer der indeholder specialtegn til serveren, så sker der ikke noget - det virker fortsat fint. Det er altså kun specialtegn i databasen der "tager skade" af overførslen fra klient til server.

Nogen idéer ?
Avatar billede krogstrup Nybegynder
28. september 2006 - 15:09 #11
se f.eks. i venstre menuen på dette site:
http://byrialsen.wkh.dk
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