Buggfix Plus
Aktuellt datum och tid: 16.27 2019-01-19

Alla tidsangivelser är UTC + 1 timme




Svara på tråd  [ 11 inlägg ] 
Författare Meddelande
InläggPostat: 17.45 2013-10-12 

Blev medlem: 11.20 2009-05-26
Inlägg: 5451
Ort: Kristinehamn
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?


Upp
 Profil  
 
InläggPostat: 18.00 2013-10-12 

Blev medlem: 21.26 2006-03-26
Inlägg: 2964
Ort: Smedjebacken
Vilka filer laddar du upp?


Upp
 Profil  
 
InläggPostat: 18.11 2013-10-12 

Blev medlem: 00.48 2009-01-18
Inlägg: 7604
Ort: Alvesta, Småland
Vad exakt för kod kör du? Och här databasen i utf eller vad just nu?


Upp
 Profil  
 
InläggPostat: 18.38 2013-10-12 

Blev medlem: 11.20 2009-05-26
Inlägg: 5451
Ort: Kristinehamn
Just nu UTF-8

Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
<?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);
?>


Upp
 Profil  
 
InläggPostat: 07.00 2013-10-13 

Blev medlem: 11.20 2009-05-26
Inlägg: 5451
Ort: Kristinehamn
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:
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Tar jag bort:
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
content="text/html;


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.


Upp
 Profil  
 
InläggPostat: 10.58 2013-10-13 

Blev medlem: 18.26 2006-07-04
Inlägg: 23239
Kika på headern "Content-Type:" ..?


Upp
 Profil  
 
InläggPostat: 13.09 2013-10-13 
Användarvisningsbild

Blev medlem: 20.22 2007-02-21
Inlägg: 4874
Ort: Luleå
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: [Expandera/Minimera] [Hämta] (Untitled.txt)
  1. <?php
  2.     $db_host = "localhost";
  3.     $db_username = "db";
  4.     $db_pass = "pw";
  5.     $db_name = "user";
  6.  
  7.     mysql_pconnect($db_host, $db_username, $db_pass) or die ("Could not connect connect to MySQL Server");
  8.     mysql_select_db($db_name) or die ("No database");
  9.     mysql_set_charset('utf8');
  10. ?>


Upp
 Profil  
 
InläggPostat: 15.50 2013-10-13 

Blev medlem: 11.20 2009-05-26
Inlägg: 5451
Ort: Kristinehamn
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.


Upp
 Profil  
 
InläggPostat: 16.06 2013-10-13 
EF Sponsor
Användarvisningsbild

Blev medlem: 15.29 2005-05-10
Inlägg: 37084
Ort: Söderköping
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 "&Auml;"
innan det skickas tillbaka till web-browsern. Och på samma sätt för
övriga svenska tecken (och eventuellt andra) som inte visas korrekt.


Upp
 Profil  
 
InläggPostat: 16.16 2013-10-13 

Blev medlem: 11.20 2009-05-26
Inlägg: 5451
Ort: Kristinehamn
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: [Expandera/Minimera] [Hämta] (Untitled.txt)
  1. <?php
  2.     $db_host = "localhost";
  3.     $db_username = "db";
  4.     $db_pass = "pw";
  5.     $db_name = "user";
  6.  
  7.     mysql_pconnect($db_host, $db_username, $db_pass) or die ("Could not connect connect to MySQL Server");
  8.     mysql_select_db($db_name) or die ("No database");
  9.     mysql_set_charset('utf8');
  10. ?>

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. :D


Upp
 Profil  
 
InläggPostat: 18.00 2013-10-13 

Blev medlem: 00.48 2009-01-18
Inlägg: 7604
Ort: Alvesta, Småland
den mysql_set charset har jag också halkat på och fick sätta sist :) Bra att de löste sig!


Upp
 Profil  
 
Visa inlägg nyare än:  Sortera efter  
Svara på tråd  [ 11 inlägg ] 

Alla tidsangivelser är UTC + 1 timme


Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 7 gäster


Du kan inte skapa nya trådar i denna kategori
Du kan inte svara på trådar i denna kategori
Du kan inte redigera dina inlägg i denna kategori
Du kan inte ta bort dina inlägg i denna kategori
Du kan inte bifoga filer i denna kategori

Sök efter:
Hoppa till:  
    Electrokit
Drivs av phpBB® Forum Software © phpBB Group
Swedish translation by Peetra & phpBB Sweden © 2006-2010