Resultat 1 till 4 av 4

Svensk utf-8 text fungerar inte med MYSQL 5

  1. #1
    sofi420s avatar
    sofi420 sofi420 är inte uppkopplad Lär mig SEO
    Reg.datum
    feb 2009
    Inlägg
    1
    Hej!

    Jag behöver er hjälp!
    Jag har skapat en liten "Form" där kan man skicka text som rubrik och meddelande till en tabell i databasen MySQL. Jag kan skriva och läsa svenk-utf-8 text (äöå) utan problem, men det går inte att läsa texten i tabellen i databasen. I databasen läser man bara text som " äåÃ".
    Om jag skriver på svenska direkt i tabellet t.ex åäö så skrivs i php sidan som "���".
    se sidan här (http://www.kodakan.se/F2.php). Jag vill ha kontroll på texten i databasen så att jag kunna redigera dem.
    Jag har försökt hela veckan att ändra på språk inställningar som Kollation-språket etc. med utf8_bin, utf8_gereral_ci,utf8_swedish_ci etc. men gav inge effekt än.
    Jag har kollat med Web-Hotel ägaren "Surftown.se" att undersöka problemet. Han skapade helt ny databas, men fortfarande inga resultat.

    Jag använda samma Kod och tabell hos en annan Web-Hotel ägare "cliche.se" och det fungerad utanproblem. enda skillnaden var att cliche.se hade Mysql v 4 och nu hos Surftown har jag Mysql v5.0.41.

    Jag infogar den tabell som jag har skapat och de två php sida som jag har:


    //Sofi
    -----
    Tabel:
    Kod:
    CREATE  TABLE  `logar_kodakan`.`F01` (  `ID` int( 10  )  NOT  NULL  auto_increment ,
     `Rubrik` varchar( 155  )  collate utf8_swedish_ci NOT  NULL ,
     `Meddelande` varchar( 155  )  collate utf8_swedish_ci NOT  NULL ,
     PRIMARY  KEY (  `ID`  )  ) ENGINE  =  MyISAM  DEFAULT CHARSET  = utf8 COLLATE  = utf8_swedish_ci;
    F2.php //en sida som har Form och visar text from tabell F0 från databasen.
    Ni kan sidan här : http://www.kodakan.se/F2.php
    Kod:
    <html>
    <head>
    <meta http-equiv="Content-Language" content="sv">
    <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <meta http-equiv="Content-Type" content="text/html; CHARSET=utf8">
    <title>Site1</title>
    </head>
    <body>
    <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="40%" height="43">
      <tr>
        <td width="100%" height="43">
        <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" height="433">
          <tr>
            <td width="100%" height="19">
            <p align="center"> 
            <FORM name=Submit1 action="F1.php" method=post>
    		</td>
          </tr>
          <tr>
            <td width="100%" height="19">
    <p align="left" style="margin-top: 0; margin-bottom: 0"><b>Tittle</b></p>
    <p style="margin-top: 0; margin-bottom: 0">
    <INPUT dir=ltr style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma" size=60 name=rubrik></p>
    <p style="margin-top: 0; margin-bottom: 0"><b>Suggestion</b></p>
    <p style="margin-top: 0; margin-bottom: 0">&nbsp;<TEXTAREA dir=rtl style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma" name=comment rows=10 cols=58></TEXTAREA>
    <INPUT style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma; margin-top:8" type=submit value=ارسال name=B1>
    </FORUM>
            </p>
            <p>&nbsp;</td>
          </tr>
          <tr>
            <td width="100%" height="413">
    <?php
    include("config.php");
    $con = include("opendb.php");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
      $result = mysql_query("SELECT * FROM F0");while($row = mysql_fetch_array($result))
      {
        $meddelande=$row['Meddelande'];
      echo "<p align=right style='margin:0 50'>"."<font color=#FF3300 size=4>". $row['Rubrik']."</font>" . "<br />"  . nl2br($meddelande). "</p>"."<p align=right style='margin:0 50'>"."<br />"."<font color=#0000FF size=3>"."</font>"."<font size=2>". " " ." " . "</font>"."<font size=1>". $row['Datum'] ."</p>"."<p style=margin: 0 8>". "</font>". "</p>"."<p align=right style=margin: 0 8>" . "---------------------------------------------------------------------"."</p>";
      echo "<br />";
      }
    include("closedb.php");
    ?>
    </td>
          </tr>
        </table>
        </td>
      </tr>
    </table>
    
    </body>
    
    </html>
    F1.php // Den sida bara läggar in text i Databasen.
    Kod:
    <?php header("Content-type: text/html; CHARSET=utf8", true);?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; CHARSET=utf8" />
    <title>test page </title>
    </head>
    <body>
    <?php //insert the name, tittle and message etc to table F0.
    
    	include("config.php");
    	$con = include("opendb.php");
    	if (!$con)
    	{
    		die('Could not connect: ' . mysql_error());
    	}
    		$sql="INSERT INTO F0 (Rubrik,Meddelande)
    		VALUES
    		('$_POST[rubrik]','$_POST[comment]')";
    		if (!mysql_query($sql))
    		{
    		die('Error: ' . mysql_error());
    		}
    include("closedb.php");
    ?>
    <p><a href="F2.php">Back to page F2</a></p>
    </body>
    </html>

  2. #2
    Mädzz..s avatar
    Mädzz.. Mädzz.. är inte uppkopplad Kan SEO rätt bra
    Reg.datum
    okt 2006
    Ort
    Stockholm
    Inlägg
    47
    Hejsan Sofi!

    Jag har inte gtt igenom din kod i nogrannhet men jag har upplevt liknande prblem med just MySQL 5 och å, ä och ö.

    Den snabbaste lösningen jag gick för då var att html-koda varje tecken av den sorten. Dvs. att å skrivs &aring; ä skrivs &auml; ch ö &ouml;

    För alla webbläsare kommer detta alltid skrivas ut som korrekta å, ä och ö.

    Ett alternativ om du inte vill gå igenom all din text kan vara att du vid varje läsning av text frn databasen parsar igenom resultatet och ersätter alla , ä och ö eller vad de bli i output till html-kodade tecknen så de ser korrekta ut i alla webbläsare.

    Hoppas detta hjälpte dig och lycka till.

    Mvh /Mats

  3. #3
    NBTs avatar
    NBT NBT är inte uppkopplad Kan SEO rätt bra
    Reg.datum
    sep 2008
    Inlägg
    72
    PHP defaultar väl alltid på iso8859-1 / latin1? Kolla /etc/php.ini om du har access, annars testa göra ett anrop till mb_internal_encoding() från ett script. Om PHP har någon option för encoding på databas-URI:n är den nog värd att kolla också, men jag har för mig att den alltid defaultar på PHP:s inställningar.

  4. #4
    ställans avatar
    ställan ställan är inte uppkopplad Kan SEO rätt bra
    Reg.datum
    mar 2007
    Ort
    Stockholm
    Inlägg
    114
    Alla filer sparade som utf-8? Även include filerna?

    Testa även att ange dessa precis efter du ansluter till databasen
    mysql_query( "SET NAMES utf8");
    mysql_query( "SET CHARACTER SET utf8");

Ämnesinformation

Användare som tittar på det här ämnet

Det är för närvarande 1 användare som tittar på det här ämnet. (0 medlemmar och 1 gäster)

Liknande ämnen

  1. Länkar och hur de värderas av Google
    Av Gustav i forum Länkbygge
    Svar: 26
    Senaste inlägg: 2009-02-19, 08:46
  2. Redirect 301 fungerar inte
    Av Alfons74 i forum Domänen
    Svar: 18
    Senaste inlägg: 2008-09-05, 21:56
  3. Länkbyten: Tips och information från hans99
    Av Jim Westergren i forum Länkbyten
    Svar: 5
    Senaste inlägg: 2008-01-25, 02:49
  4. Svenska sökord fungerar inte i wordtracker?
    Av micke021 i forum Sökordsanalys
    Svar: 0
    Senaste inlägg: 2007-11-26, 21:18
  5. Avgör Google om text är gammal eller inte?
    Av closingbell i forum Google
    Svar: 4
    Senaste inlägg: 2007-09-24, 20:54