Just nu i M3-nätverket
Gå till innehåll

Databas tar inte emot åäö.


sundrik

Rekommendera Poster

Jag har stora problem med att få åäö att fungera i min databas.

 

Jag har komprimerat en sida för att kunna felsöka.

Denna sidan skriver in en beskrivning i databasen. ÅÄÖ klipps bort totalt.

Om jag skriver in "Dom där röda bären". Så kommer bara "Dom d" att skrivas in i databasen. Allt efter första å,ä eller ö klipps bort. Även tecken som ´,`, ¤ osv.

[log]<%@language="VbScript" codepage=65001%>

<%

Response.ContentType = "text/html"

Response.CharSet = "utf-8"

 

'Databasen

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

dbOpen = "Driver={MySQL ODBC 3.51 Driver};ServerXXX;charset=UTF8;Database=XXX;User=XXXe; Password=XXX; Option=3;"

 

'Att sidan skall vara svensk med svensk teckenuppsättning

Session.LCID = 1053

%>

<title>SIDA</title>

<!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" dir="ltr" lang="sv">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

</head>

<body>

<% pID = 28

connect.open(dbOpen)

set rs = connect.execute("SELECT * FROM XXX WHERE pID ="& pID&"")

pComment = rs("pComment")

set rs = nothing

connect.close

%>

<form method='POST' action='?do=edit&pID=<%=pID %>'>

<table width="600">

<tr><td>Beskrivning<br /></td><td><textarea name='tComment' rows='4'><%=pComment %></textarea></td></tr>

<tr><td><input type='hidden' name='tID' value='<%=pID%>'><input type="submit" name="Submit" value="Lägg in sidan/filen" /></td></tr>

</table>

</form>

<%

IF Request("do") = "edit" THEN

 

tID = request.form("tID")

tComment = request.form("tComment")

 

connect.open(dbOpen)

connect.execute("SET NAMES utf8")

connect.execute("SET CHARACTER SET utf8")

connect.execute("UPDATE XXX SET pComment = '" & tComment &"' WHERE pID ="& tID &"")

connect.close

Set Connect = Nothing

response.redirect "?pID="& tID &"&done=" &tComment

END IF

%>

</body>[/log]

 

Sen har tabellen utf8_general_ci, även kolumnerna.

själva dtabasen har även den utf8_general_ci.

 

Jag administrerar databasen med phpmyadmin. Där kan man klicka på något som heter "Show MYSQL system variables". där står förljande:

[log]character set client utf8

(Global value) latin1

character set connection utf8

(Global value) latin1

character set database latin1

character set results utf8

(Global value) latin1

character set server latin1

character set system utf8

character sets dir /usr/share/mysql/charsets/

collation connection utf8_general_ci

(Global value) latin1_swedish_ci

collation database latin1_swedish_ci

collation server latin1_swedish_ci[/log]

 

Global value tror jag bara betyder att om inget väljs, så blir det Latin1. Jag tror det är dom andra som spökar där det står latin1.

Men jag är oerhört kass på phpmyadmin och vad allt detta betyder i mysql. Har googlat som en liten blå, utan något resultat.

 

Går det ens att ändra dessa variabler?

 

Jätte tacksam för all hjälp.

Länk till kommentar
Dela på andra webbplatser

Om du klipper in din sql-kod i queryfönstret i phpmyadmin. Kommer dina bokstäver på plats då?

 

Sen skyr jag fritext sql-querys som pesten. Använd istället procedurer och adodb commands. På så vis slipper du risk att vbscript gör fel när du konkatinerar ihop din sql-fråga.

 

Exempel

    Dim cmd
   Set cmd = Server.CreateObject("ADODB.Command")
   cmd.CommandText = "PROCEDURNAMN"
   cmd.ActiveConnection = dbConn
   cmd.CommandType = adCmdStoredProc

   Set objRS = Server.CreateObject("ADODB.Recordset")
   objRS.CursorLocation = adUseClient
   objRS.CursorType = adOpenDynamic

   objRS.Open cmd

 

Sen bör du sätta Response.Charset till "utf8" eller "utf-8", jag glömmar altid det där. Undvik att sätta det i metatagg. Det bör komma från servern. I Visual Studio kan du under menyn Advanced save options ställa in att spara själva asp filen som utf-8. Det bör du också göra.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...