Avatar billede miwu.tk Nybegynder
27. februar 2009 - 20:21 Der er 19 kommentarer og
1 løsning

Specielle tegn

Hej

Jeg har lige skiftet webhotel, og i den forbindelse har jeg flyttet mit website over.

Det viser sig dog, at når der bliver skrevet tegn som æ, ø, å og ä osv. så kommer der underlige tegn i stedet. Fx ä istedet for ä...

1. Er der nogle der kan forklare mig hvad det skyldes?

Jeg kan selvfølgelig rette op på det, ved at smække en masse replace() op. Men det synes jeg virker meget besværligt.

2. Er der nogen anden måde jeg kan løse det på?
Avatar billede keysersoze Guru
27. februar 2009 - 20:37 #1
Det skyldes formentlig bare rod i dit tegnsæt - der er masser omkring præcis det emne her på eksperten, se fx;

http://www.eksperten.dk/spm/840046
http://www.eksperten.dk/spm/800348
http://www.eksperten.dk/spm/825297
Avatar billede mitbrugernavn Praktikant
27. februar 2009 - 20:39 #2
sæt en af disse i toppen af dine sider


<% session.LCID = 1030 %>
Avatar billede mitbrugernavn Praktikant
27. februar 2009 - 20:42 #3
undskyld det var det forkerte -

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
    <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
Avatar billede miwu.tk Nybegynder
27. februar 2009 - 21:06 #4
keysersoze > Der er bare det ved det, at min hjemmeside kun består af 2 filer - Index.asp og gem.asp. I gem.asp har jeg intet html stående, men kun ASP. Er det så nødvendigt at have fastsat charset?

I index.asp har jeg sat charset til at være UTF-8, hvilket jeg går ud fra er den nyeste og mest almindelige standard?
Avatar billede miwu.tk Nybegynder
27. februar 2009 - 23:17 #5
mitbrugernavn > Undskyld, på mirakuløsvis har jeg overset dit forslag. Jeg har allerede sat min charset til UTF-8, og det virker til stadighed ikke.

Mine bogstaver bliver erstattet på flg måde:

æ = æ
ø = ø
Ã¥ = å

Jeg kan ikke som sagt ikke se hvor jeg skulle have sat to forskellige charsets, da jeg jo kun har to sider. 1 der henter og viser data fra min database, og en der gemmer i den.
Avatar billede miwu.tk Nybegynder
27. februar 2009 - 23:24 #6
Jeg har lige kigget min database igennem, og det viser sig, at data faktisk bliver gemt med de erstattede tegn. Dvs. der ikke står æøå inde i DB'en, men æøå istedet.

Hvad kan det skyldes og hvordan kan det være, at det ellers har virket fint på den gamle server jeg brugte?
Avatar billede mitbrugernavn Praktikant
28. februar 2009 - 08:23 #7
har du overført data til en ny database ?? prøv evt. at indsætte data i db igen - men sæt db til dansk.
Avatar billede keysersoze Guru
28. februar 2009 - 09:30 #8
benytter du mysql? Så kig på hvad den står til af tegnsæt.
Avatar billede miwu.tk Nybegynder
28. februar 2009 - 12:46 #9
jeg benytter en access database. Det eneste jeg har gjort er at overfører min game database over på den nye server. Hvilket nok gør det mere underligt at tegnsætningen pludselig opfører sig tosset.
Avatar billede keysersoze Guru
28. februar 2009 - 18:29 #10
De underlige tegn er ikke kommet i databasen pga overflyttelsen - de er opstået pga tegnsæt-problemer. Det klart bedste du kan gøre er at rette op på fejlene i databasen.
Avatar billede miwu.tk Nybegynder
28. februar 2009 - 18:37 #11
Ja, men det ændre stadigvæk ikke ved, at den stadigvæk gemmer mine data med underlig tegn.

Jeg har trodsalt sat charset=UTF-8 i begge mine filer, så det burde vel ikke være noget problem. Eller har jeg måske fuldstændig misforstået det du har ment med tegnsæt?
Avatar billede keysersoze Guru
01. marts 2009 - 11:24 #12
ah - jeg troede kun det var et problem med data skrevet på den anden server. Har du sat codepage ind som foreslået tidligere? hvordan ser koden ud på begge sider - sådan det mest relevante af det?
Avatar billede miwu.tk Nybegynder
01. marts 2009 - 11:40 #13
index.asp:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<link rel="shortcut icon" href="billeder/favicon.ico"/>
</head>


<body>

<div id="wrapper">

 
<div id="nav">

    <form action="gbog/gem.asp" method="post">
 
navn
        <input name="navn" type="text">
besked
        <textarea type="textarea" cols="35" rows="15" name="besked"></textarea>
    <div align="right">
        <input type="button" onClick="parent.location='?action=abandon'" value="log af" class="button">
   
        <input type="submit" class="button" name="gem" value="gem" width="49" height="25">
    </form>
  </div>
        <div id="content">
<%
   
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 1
End If

Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "Select  * From wall order by id desc"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../database/db.mdb")
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 10
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount

%> <div align="center"> <% 

Response.Write ""
If Clng(intPage) > 1 Then
    Response.Write "<a href=?page=" & intPage - 1 & ">&lt;&lt;</a>"
Else
    Response.Write "&lt;&lt;"
End If

Response.Write " side " & intPage & " af " & intPageCount & " "

If Clng(intPage) < Clng(intPageCount) Then
    Response.Write "<a href=?page=" & intPage + 1 & ">&gt;&gt;</a>"
Else
    Response.Write "&gt;&gt;"
End If
%>
</div>
<font class="content">
<%

    Do While Not rs.EOF And intRecCount > 0


      Response.Write "" & Replace(rs("besked"),chr(13),"<br/>")      & ""


%>
    intRecCount = intRecCount - 1
    rs.MoveNext
    Loop
%>
</font>   

<div align="center">
<%    Response.Write ""
If Clng(intPage) > 1 Then
    Response.Write "<a href=/?page=" & intPage - 1 & ">&lt;&lt;</a>"
Else
    Response.Write "&lt;&lt;"
End If

Response.Write " side " & intPage & " af " & intPageCount & " "

If Clng(intPage) < Clng(intPageCount) Then
    Response.Write "<a href=/?page=" & intPage + 1 & ">&gt;&gt;</a>"
Else
    Response.Write "&gt;&gt;"
End If
    %></div> <%
    End If
    rs.Close
    Set rs = Nothing

%>
        </font>
</div>
</div>
</body>
</html>

gem.asp:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
</head>

<body>


<%
    Response.charset="utf-8"



    Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
    DSN = DSN & "DBQ=" & Server.MapPath("databasesti.mdb")
    Conn.Open DSN


        navn = Request.Form("navn")
        besked = Request.Form("besked")

strSQL = "Insert into gb (navn, besked, dato, tid, ip) values('" & Server.HtmlEncode(Replace(request.form("navn"), "'", "''")) & "', '" & Replace(request.form("besked"),"'","''") & "','"&date()&"', '"& time&"', '" & (IP) & "')"
' SQL sætning eksekveres
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
response.redirect "/"

%>

</body>
</html>
Avatar billede miwu.tk Nybegynder
01. marts 2009 - 11:41 #14
jeg har kortet dem så af jeg nu kunne, beklager jeg ikke lige fik afstumpet dem endnu yderligere... hehe :)
Avatar billede keysersoze Guru
01. marts 2009 - 11:52 #15
Prøv at arbejd med

Session.LCID = 1030
Session.CodePage = 65001
Avatar billede keysersoze Guru
01. marts 2009 - 11:54 #16
... hvis du sætter codepage på den måde du gør er det kun på den specifikke side. Hvis du fx har en fil hvori du lægger genbrugelig kode du inkluderer på hvert enkelt side kan det være en fordel også at have de to nævnte med i den.
Avatar billede miwu.tk Nybegynder
01. marts 2009 - 11:58 #17
det hjalp! tusind tak :D

Kan du forklare mig helt præcist hvorfor det hjalp? Hvorfor skal det fx gøres som en session?

Det er ikke for at være besværligt, men jeg skal jo trods alt lære af mine fejl :)
Avatar billede miwu.tk Nybegynder
01. marts 2009 - 12:01 #18
...men hvad skal jeg gøre med den data der allerede er gemt i databasen? De står stadigvæk mærkeligt, men når man skriver i databasen, ser ser det ud som det skal.
Avatar billede keysersoze Guru
01. marts 2009 - 15:02 #19
Det hjalp fordi når du sætter codepage som du gør (gjorde) hjælper det kun på den specifikke side - det betyder, at din index.asp kan være én codepage og din gem.asp kan være en anden. Iøvrigt vil al din HTML på gem.asp være irrelevant, HTML er clientside og fungerer kun på klienten - og da du jo redirecter i bunden af asp-filen kommer der aldrig noget ud til klienten.

Hvis der er fejl i databasen så få rettet op på dem - visningsmæssigt kan det være en idé at køre igennem Server.HtmlEncode.
Avatar billede miwu.tk Nybegynder
01. marts 2009 - 16:43 #20
mange tak for hjælpen! :D
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
Kurser inden for grundlæggende programmering

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