mySQL och åäö funkar inte
-
- Inlägg: 7859
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
mySQL och åäö funkar inte
Jag får mask! Har en mySQL-databas som innehåller text med svenska tecken. Har provat med UTF-8 och ISO 8859-1 i både databasen och på sidan.
I databasen ligger ÅÄÖ som dom skall och när jag testkör mot min lokala databas så funkar det, men när jag laddar upp filerna och kör mot databasen, som är en kopia av min lokala databas, hos min leverantör (Binero) , så blir det bara ??? i stället för ÖÄÅ
Det är min son som äger kontot på Binero och han flänger runt i Tyskland just nu, så att få hjälp hos supporten tar tid. Någon här som vet en lösning?
I databasen ligger ÅÄÖ som dom skall och när jag testkör mot min lokala databas så funkar det, men när jag laddar upp filerna och kör mot databasen, som är en kopia av min lokala databas, hos min leverantör (Binero) , så blir det bara ??? i stället för ÖÄÅ
Det är min son som äger kontot på Binero och han flänger runt i Tyskland just nu, så att få hjälp hos supporten tar tid. Någon här som vet en lösning?
-
- Inlägg: 8055
- Blev medlem: 18 januari 2009, 00:48:24
- Ort: Alvesta, Småland
Re: mySQL och åäö funkar inte
Vad exakt för kod kör du? Och här databasen i utf eller vad just nu?
-
- Inlägg: 7859
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: mySQL och åäö funkar inte
Just nu UTF-8
Kod: Markera allt
<?php require_once('Connections/mydata.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
mysql_select_db($database_mydata, $mydata);
$query_kundRec = "SELECT * FROM kunddb WHERE radId = 56";
$kundRec = mysql_query($query_kundRec, $mydata) or die(mysql_error());
$row_kundRec = mysql_fetch_assoc($kundRec);
$totalRows_kundRec = mysql_num_rows($kundRec);
?>
<!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>svtecken.php</title>
</head>
<body>
<?php echo $row_kundRec['fNamn']; ?><br />
<?php echo $row_kundRec['eNamn']; ?>
</body>
</html>
<?php
mysql_free_result($kundRec);
?>
-
- Inlägg: 7859
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: mySQL och åäö funkar inte
Jag var lite trött i natt så jag fick för mig att ÅÄÖ funkade när jag körde mot testdatabasen lokalt. Det gjorde den inte. Det är samma fel. Skriver jag in HTML-koden för ÖÄÅ manuellt i databasen så visas det korrekt på skärmen.
Edit: Har nu fått den att skriva de rätta tecknen för när jag skriver ut från databasen
När man skapar en sida med hjälp av Dreamweaver så skapas raden:
Tar jag bort:
Så blir det rätt oavsett om det är html-kodat eller bara öäå i databasen. Jag kan till och med ta bort hela raden och det fungerar. Men då skrivs inte rätt tecken ut i den text som skrivs direkt på sidan, så fortfarande funkar det inte som det skall.
Edit: Har nu fått den att skriva de rätta tecknen för när jag skriver ut från databasen
När man skapar en sida med hjälp av Dreamweaver så skapas raden:
Kod: Markera allt
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Kod: Markera allt
content="text/html;
- ElectricMan
- Inlägg: 4874
- Blev medlem: 21 februari 2007, 20:22:48
- Skype: ElectricManSwe
- Ort: Luleå
- Kontakt:
Re: mySQL och åäö funkar inte
Antar att det är i Connections/mydata.php du ansluter till mysql-databasen?
Testa lägg till mysql_set_charset('utf8'); i den filen.
Exempel;
Testa lägg till mysql_set_charset('utf8'); i den filen.
Exempel;
Kod: Markera allt
<?php
$db_host = "localhost";
$db_username = "db";
$db_pass = "pw";
$db_name = "user";
mysql_pconnect($db_host, $db_username, $db_pass) or die ("Could not connect connect to MySQL Server");
mysql_select_db($db_name) or die ("No database");
mysql_set_charset('utf8');
?>
-
- Inlägg: 7859
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: mySQL och åäö funkar inte
Ska testa det senare. För tillfället fungerar det. Jag hade skrivit in testdata direkt via mySQL-kontrollpanelen. ÖÄÅ lagrades då i databasen som ÖÄÅ. När jag lade in motsvarande HTML-kod i st.f rena tecknen så funkade det. Det visade sig att om jag uppdaterar databasen via den kod som DW producerar så läggs den in som HTML-kod. Så problemet finns egentligen bara om jag lägger in data manuellt via kontrollpanelen.
Re: mySQL och åäö funkar inte
Personligen tycker jag att databasen ska innehålla original data och
sedan görs HTML kodningar i samband med presentationen. Jag har
just nu ett liknande problem fast där ligger data i 7-bit ASCII, d.v.s
att "Ä" är lagrat som "\" i databasen. Det konverteras till "Ä"
innan det skickas tillbaka till web-browsern. Och på samma sätt för
övriga svenska tecken (och eventuellt andra) som inte visas korrekt.
sedan görs HTML kodningar i samband med presentationen. Jag har
just nu ett liknande problem fast där ligger data i 7-bit ASCII, d.v.s
att "Ä" är lagrat som "\" i databasen. Det konverteras till "Ä"
innan det skickas tillbaka till web-browsern. Och på samma sätt för
övriga svenska tecken (och eventuellt andra) som inte visas korrekt.
-
- Inlägg: 7859
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: mySQL och åäö funkar inte
TAAAACK!!! Testade, och nu kan jag använda ÅÄÖ direk utan html. En enkel lösning om man visste om den. Har Googlat som bara den men missade detta. Jag var säker på att databasen var UTF8 eftersom det står så i tabellerna, men det hjälper tydligen inte. Nu är jag glad igen.ElectricMan skrev:Antar att det är i Connections/mydata.php du ansluter till mysql-databasen?
Testa lägg till mysql_set_charset('utf8'); i den filen.
Exempel;Kod: Markera allt
<?php $db_host = "localhost"; $db_username = "db"; $db_pass = "pw"; $db_name = "user"; mysql_pconnect($db_host, $db_username, $db_pass) or die ("Could not connect connect to MySQL Server"); mysql_select_db($db_name) or die ("No database"); mysql_set_charset('utf8'); ?>
-
- Inlägg: 8055
- Blev medlem: 18 januari 2009, 00:48:24
- Ort: Alvesta, Småland
Re: mySQL och åäö funkar inte
den mysql_set charset har jag också halkat på och fick sätta sist Bra att de löste sig!