Avatar billede lazeric Nybegynder
01. juni 2006 - 16:00 Der er 33 kommentarer og
3 løsninger

ASP og MySQL - problem med danske vokaler.

I MySQL databasen kan jeg se at den skiver øæå korrekt, men når jeg hiver det ud af databasen på en ASP side skriver den ikke øæå?
Dump fra MySQL:
****
mysql> select * from
    -> dokumentation
    -> ;
+----+--------------------+
| id | kategori          |
+----+--------------------+
|  1 | Hardware billeder  |
|  2 | Hostmaster        |
|  3 | Kunde Overvågning  |
|  4 | Kundetegninger    |
|  5 | Opkoblingsmanualer |
|  6 | Perf. Man          |
|  7 | XXX LL            |
|  8 | Workflow          |
+----+--------------------+
8 rows in set (0.00 sec)
****

ASP koden:
****
<%
    Set Rs = Conn.Execute("SELECT * FROM dokumentation ORDER BY kategori ASC;")
    If Rs.BOF Then %>
    <tr>
        <td align="center">::: Tabellen er tom :::</td>
    </tr>
<%   
    else
    Do Until Rs.EOF
%>

        <tr><td align="left"><a href="?p=dok&katid=<%=RS("id")%>" ><%=RS("kategori")%></a></td></tr>

<%
    Rs.MoveNext
    Loop
%>

<% end if%>
****
Avatar billede mitbrugernavn Praktikant
01. juni 2006 - 16:35 #1
Prøv at sætte dette i toppen af filen
<% session.lcid = 1030 %>

så tager den dansk dato og talformater, det kan være det også gælder for bogstaver
Avatar billede fennec Nybegynder
01. juni 2006 - 17:06 #2
Kan evt også være charset der er problemt. Smid charset meta koden i din <head> del:

<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
  <title>Mit site</title>
</head>
Avatar billede lazeric Nybegynder
02. juni 2006 - 08:48 #3
Tak for buddende, men de har ikke løst problemet...
Avatar billede mitbrugernavn Praktikant
02. juni 2006 - 08:55 #4
prøv at kigge på dette spørgsmål

http://www.eksperten.dk/spm/287034
Avatar billede lazeric Nybegynder
02. juni 2006 - 09:44 #5
Jeg kan ærlig talt ikke følge med i den tråd, hvad det er de når frem til som løsning. Men er det ikke også XMLHTTP de arbejder med der?
Jeg arbejder bare med god gammel ASP.
Samtidig er det aller første gang nogensinde at jeg er løbet ind i det her problem og tilfældigvis også aller første gang at Serveren er en jeg selv har installeret... Server:
WinXP Pro med ISS (5.0 tror jeg) og MySQL serveren er v.5.0.18.
Avatar billede fennec Nybegynder
02. juni 2006 - 09:59 #6
Hvilket charset kører din MySQL server med?? Kunne forstille mig at det evt var utf-8, også skal din HTML køre i samme:
<meta http-equiv="content-type" content="text/html; charset=utf-8">
Avatar billede lazeric Nybegynder
02. juni 2006 - 10:15 #7
Den kører latin1. Jeg har prøvet med:
<meta http-equiv="content-type" content="text/html; charset=latin1">
men det virker ikke
Avatar billede mitbrugernavn Praktikant
02. juni 2006 - 10:21 #8
sad med et omvendt problem for nogen tid siden. skulle importere i en mysql og den skulle sættes til latin1 ellers lavede den andre tegn for æ ø å - i toppen af mine filer er meta sat således

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

og den viser det helt korrekt
Avatar billede lazeric Nybegynder
02. juni 2006 - 10:27 #9
Det har jeg prøvet. Hvad stod din MySQL? jeg kan jo prøve at ændre opsætnningen af serveren istedet...
Avatar billede fennec Nybegynder
02. juni 2006 - 10:34 #10
latin1 er ISO-8859-1, og den har vi afprøvet :(

Prøv lige at smide denne kode i toppen af din ASP side (skal være første linje):
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
Avatar billede mitbrugernavn Praktikant
02. juni 2006 - 10:35 #11
på min lokale maskine står min mySQL på latin1_swedish_ci - på den eksterne server er det latin1
Avatar billede mitbrugernavn Praktikant
02. juni 2006 - 10:37 #12
som fennec også har skrevet
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
det har jeg også i toppen af mine sider
Avatar billede lazeric Nybegynder
02. juni 2006 - 10:38 #13
Så har jeg prøvet <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>, men desværre også uden helt...
"Å" skrives stadig som "†"
Avatar billede fennec Nybegynder
02. juni 2006 - 10:42 #14
Mit sidste bud er CODEPAGE="65001"
Hvis det ikke virker, har jeg ikke flere ideer på nuværende tidspunkt.
Avatar billede fennec Nybegynder
02. juni 2006 - 10:44 #15
Medtag evt også denne kode og fjern <meta charset> koden:
Response.CodePage = 65001
Response.CharSet = "utf-8"
Avatar billede lazeric Nybegynder
02. juni 2006 - 10:51 #16
Hvor i koden skal jeg bruge det?

Response.CodePage = 65001
Response.CharSet = "utf-8"
Avatar billede fennec Nybegynder
02. juni 2006 - 10:57 #17
I starten:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
Response.CodePage = 65001
Response.CharSet = "utf-8"
%>
Avatar billede lazeric Nybegynder
02. juni 2006 - 11:00 #18
Desværre!

Frustrerende!!
Jeg har lige reconfigureret MySQL serveren for at være sikker på at den kører Latin1, så det bør ikke kunne være fejlen.
Avatar billede lazeric Nybegynder
02. juni 2006 - 14:03 #19
Alt gik faktisk i spunkt efter jeg tilføjede:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
Response.CodePage = 65001
Response.CharSet = "utf-8"
%>

Er det den rigtige codepage? Nu æøå'er der ikke er trukket fra database heller ikke vist rigtigt.
Avatar billede fennec Nybegynder
02. juni 2006 - 14:18 #20
Dette er utf-8 encoding (1252 er latin). Prøv at ændre din MySQL til utf-8, så du kører utf-8 over alt.
Avatar billede lazeric Nybegynder
02. juni 2006 - 16:01 #21
Men den virker jo stadig ikke for den tekst jeg bare skriver på siden udenom databasen
Avatar billede fennec Nybegynder
02. juni 2006 - 16:09 #22
Det skulle det gerne. Hvis HTML/ASP og databasen kører i samme charset (utf-8) skulle der ikke være nogen problemer med data-overførslen.

Du skal dog være opmærksom på at tabeller/kolloner kan have deres egen charset, så importere du en backup, får kolonnerne den oprindelige indstilling. Og det er ikke nødvendigvis databasens default.
Avatar billede mitbrugernavn Praktikant
04. juni 2006 - 08:46 #23
hej igen

1 dag efter dit spørgsmål sad jeg pludselig med samme problem uf.....
Sidder med en editor som når jeg skriver er det ok med æ ø og å - det samme ved visningen, lægger det korrekt i db også - men når jeg kalder det ud igen i en form(for at redigerer) så går der ged i den. Har på min side følgende i toppen:

<%@ CodePage=65001 Language="VBScript"%>
<% Option Explicit %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta name="robots" content="noindex, nofollow">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

som der gik ged i - har nu fjernet nederste linie
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
og så kører det som det skal.

måske sidder du med det samme i din fil - så kan det måske også hjælpe dig.
Avatar billede lazeric Nybegynder
06. juni 2006 - 10:21 #24
Jeg kan slet ikke forbinde til databasen når jeg bruger:
<%@ CodePage=65001 Language="VBScript"%>
<% Option Explicit %>

Nu har jeg sat databasen op til UTF-8 istedet og prøvet alle jeres bud igen, uden held. Jeg fatter simpelthen ikke hvad det er. Er der noget jeg kan give som kan hjælpe jer til at finde ud af det?
Avatar billede mitbrugernavn Praktikant
06. juni 2006 - 10:23 #25
hvad fejl får du når du bruger ovennævnte ?
Avatar billede lazeric Nybegynder
06. juni 2006 - 12:07 #26
Den kan ikke forbinde til databasen.
Den laver fejl i dette script:
<%
SQLserveradr="XXX.XXX.XXX.XXX"
SQLdatabase="database_guru"
SQLlogin="XXX"
SQLpassword="XXXX"

Set Conn = Server.CreateObject("ADODB.Connection")

'conStr = "driver={MySql};server="& SQLserveradr &";database="& SQLdatabase
conStr = "driver={MySQL ODBC 3.51 Driver};server="& SQLserveradr &";database="& SQLdatabase
conStr = conStr & ";uid="& SQLlogin &";pwd="& SQLpassword & ";OPTION=16386"

Conn.Open conStr
%>

Den siger:
Error Type:
Microsoft VBScript runtime (0x800A01F4)
Variable is undefined: 'SQLserveradr'
/sider/dbcon.asp, line 2
Avatar billede mitbrugernavn Praktikant
06. juni 2006 - 12:10 #27
<% Option Explicit %>
fjern denne linie

linien betyder at du skal dim alle dine variabler
Avatar billede fennec Nybegynder
06. juni 2006 - 12:23 #28
Behold heller <% Option Explicit %> og dim alle dine variabler.

dim SQLserveradr, SQLdatabase, SQLlogin, SQLpassword, Conn, conStr
Avatar billede lazeric Nybegynder
06. juni 2006 - 12:35 #29
Ok, har nu fjernet den. Problemet med vokalerne er der stadig.
Avatar billede lazeric Nybegynder
06. juni 2006 - 12:43 #30
Jeg ved ikke helt om det siger noget men jeg har prøvet med følgende uden held:
    strText = RS("titel")
        strText = Replace(strText,"æ","&aelig;")
        strText = Replace(strText,"Æ","&AElig;")
        strText = Replace(strText,"ø","&oslash;")
        strText = Replace(strText,"Ø","&Oslash;")
        strText = Replace(strText,"å","&aring;")
        strText = Replace(strText,"Å","&Aring;")

Bør det ikke betyde at det ikke bliver hentet fra databasen som æ,ø og å ?
Avatar billede fennec Nybegynder
06. juni 2006 - 12:44 #31
Når du siger du har sat databasen op til utf-8, har du så oprettet en helt ny database, eller har du "genbrugt" en gammel???
Avatar billede lazeric Nybegynder
06. juni 2006 - 14:02 #32
Jeg bruger "MySQL service instance configuration wizard" til at lave ændringerne og jeg har prøvet både med min gamle database og med en helt ny.
Det gik dog lige op for mig at når databasen er sat til UTF-8, vil den slet ikke acceptere æøå, så jeg har sat tilbage til Latin1 hvor den accepterer det. Det er også testet på gammel og ny database.
Avatar billede fennec Nybegynder
06. juni 2006 - 14:29 #33
Nu er det ved at blive rigtig mærkelig. UTF-8 er vel den encoding der understøtter flest tegn i øjeblikket, og ALLE danske tegn er med. Selv hebariske og arabiske tegn er med.

Er ved at tro at problemet kan skyldes noget helt andet. Måske du skulle prøve over i MySQL kategorien. Det kan måske være en opsætning et eller andet sted.
Avatar billede lazeric Nybegynder
06. juni 2006 - 14:35 #34
ok. Det må jeg prøve. Efterlad lige et svar så får i begge point for jeres hjælp indtil nu :-)
Avatar billede mitbrugernavn Praktikant
06. juni 2006 - 14:37 #35
det er da godt nok rimeligt surt for dig - finder du løsningen ville det være dejligt hvis du smider det her også.
Avatar billede fennec Nybegynder
06. juni 2006 - 14:46 #36
Håber du finder ud af noget i MySQL kategorien.
.o) <-- One Eyed Jack
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