Mysql och php problem med åäö

Generella Linux-frågor och frågor gällande Linuxmjukvara som saknar egen forumkategori skall postas i detta forum
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
mwd123
Tar hemautomation på allvar
Inlägg: 89
Blev medlem: 02 dec 2008, 22:24
Ort: Skogen

Mysql och php problem med åäö

Inlägg av mwd123 »

Hej!

Är det någon som stött på problem med att åäö visas konstigt på hemsidan när man kör med mysql och php? jag har det problemet nu, och vet inte riktigt hur jag ska lösa det.

För rrdtool så löste jag det såhär i crontab:

export LANG=sv_SE

Går det att lösa det på något sätt i min phpfil, för jag har provat ändra lite i mysql men har inte lyckats.

Edit. löst på fulhackvis.
Senast redigerad av mwd123 den 16 sep 2012, 11:16, redigerad totalt 1 gånger.
Now using Tellstick NET + NEXA & PLUGWISE
http://homeauto.does-it.net powered by gadgets from m.nu
Niklas
Moderator
Inlägg: 1019
Blev medlem: 22 mar 2008, 21:13
Ort: Stockholm
Kontakt:

Re: Mysql och php problem med åäö

Inlägg av Niklas »

Du måste se till att du har rätt kodning i alla led.

Tabellerna i databasen skall vara satta till UTF-8, dina script skriver du och sparar i UTF-8 och när du presenterar datan via HTML så anger du UTF-8 i den inledande metataggen som berättar för webbläsaren vilken kodning den ska köra. Har du en massa data i databasen som är i något annat ISO-format så får du köra utf8_encode-funktionen i PHP eller så konverterar du dina tabeller i databasen till UTF-8 (vilket är smartare) om det inte redan är så. mySQL har inbyggd funktion för att konvertera datan.

Du kan förstås köra något annat än UTF-8 men det är vad jag brukar köra.
mwd123
Tar hemautomation på allvar
Inlägg: 89
Blev medlem: 02 dec 2008, 22:24
Ort: Skogen

Re: Mysql och php problem med åäö

Inlägg av mwd123 »

Hej!

Ja det märkliga är ju att om jag ändrar till UTF-8 i headern, så blir det rätt från i mysqlstuket på devicessidan, men då blir tabbarna fel, då dör mina åäö där. men när jag kollar på de i devices.php så är de skrivna rätt, så de är inte förvrängda som det kan bli ibland när man ändrar en fil.

Det funkar ju på alla andra sidor, så det känns som att det enklaste vore att göra något i php vid hämtningen från mysql? (fulhack men kanske går att göra så det funkar?)

Jag vet dock inte hur :( hoppas du kanske vet hur det ska se ut! min devices.php ser ut såhär:


<?php
$conn = mysql_connect("localhost", "root", "XXXXXXXXX")
or die($msg_no_connect);
mysql_select_db("NexaDB")
or die(mysql_error());
$res = mysql_query("SELECT a.name, a.type, a.unitid, a.status, a.recordtime as rectime FROM t_nexalogg a,osvosvosv
or die(mysql_error());
if (mysql_num_rows($res) > 0) {
echo '<table border="1" bgColor=#02061d>';
echo '<th bgcolor=#4D0000 align=left>DEVICE</th><th bgcolor=#4D0000 align=left>ID</th><th bgcolor=#4D0000 align=left>STATUS</th><th bgcolo$
while ($row = mysql_fetch_assoc($res)) {
echo "<tr>
<td>{$row['name']}</td>
<td>{$row['unitid']}</td>
<td>{$row['status']}</td>
<td>{$row['type']}</td>
<td>{$row['rectime']}</td>
</tr>";
}
echo '</table>';
}
else

Går det att lägga in det här på någotvis så den inte kör utf8?

Mvh Magnus
Now using Tellstick NET + NEXA & PLUGWISE
http://homeauto.does-it.net powered by gadgets from m.nu
Niklas
Moderator
Inlägg: 1019
Blev medlem: 22 mar 2008, 21:13
Ort: Stockholm
Kontakt:

Re: Mysql och php problem med åäö

Inlägg av Niklas »

mwd123 skrev:Hej!

Ja det märkliga är ju att om jag ändrar till UTF-8 i headern, så blir det rätt från i mysqlstuket på devicessidan, men då blir tabbarna fel, då dör mina åäö där. men när jag kollar på de i devices.php så är de skrivna rätt, så de är inte förvrängda som det kan bli ibland när man ändrar en fil.

Det funkar ju på alla andra sidor, så det känns som att det enklaste vore att göra något i php vid hämtningen från mysql? (fulhack men kanske går att göra så det funkar?)

Jag vet dock inte hur :( hoppas du kanske vet hur det ska se ut! min devices.php ser ut såhär:


<?php
$conn = mysql_connect("localhost", "root", "XXXXXXXXX")
or die($msg_no_connect);
mysql_select_db("NexaDB")
or die(mysql_error());
$res = mysql_query("SELECT a.name, a.type, a.unitid, a.status, a.recordtime as rectime FROM t_nexalogg a,osvosvosv
or die(mysql_error());
if (mysql_num_rows($res) > 0) {
echo '<table border="1" bgColor=#02061d>';
echo '<th bgcolor=#4D0000 align=left>DEVICE</th><th bgcolor=#4D0000 align=left>ID</th><th bgcolor=#4D0000 align=left>STATUS</th><th bgcolo$
while ($row = mysql_fetch_assoc($res)) {
echo "<tr>
<td>{$row['name']}</td>
<td>{$row['unitid']}</td>
<td>{$row['status']}</td>
<td>{$row['type']}</td>
<td>{$row['rectime']}</td>
</tr>";
}
echo '</table>';
}
else

Går det att lägga in det här på någotvis så den inte kör utf8?

Mvh Magnus
Men vad har tabellen för kodning i databasen? Är det olika?
mwd123
Tar hemautomation på allvar
Inlägg: 89
Blev medlem: 02 dec 2008, 22:24
Ort: Skogen

Re: Mysql och php problem med åäö

Inlägg av mwd123 »

Tabellen har standard, den heter typ utf8 generic eller nåt sånt... jag har provat att ändra till något annnat men det hjälpte inte, vet inte om man kanske måste konvertera den efteråt oxå..

Mvh
Now using Tellstick NET + NEXA & PLUGWISE
http://homeauto.does-it.net powered by gadgets from m.nu
mwd123
Tar hemautomation på allvar
Inlägg: 89
Blev medlem: 02 dec 2008, 22:24
Ort: Skogen

Re: Mysql och php problem med åäö

Inlägg av mwd123 »

Det roliga är ju att om jag ändrar denna:

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

Till

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

Så funkar ju mysqloutputen med php, men då får jag krångel med mina tabbar och grader istället:
strul1.jpg
Plus att gradtecknet blir fyrkanter istället... men nu är ju min tabell från mysql okej, men man vill ju att allt ska se bra ut :-)
Now using Tellstick NET + NEXA & PLUGWISE
http://homeauto.does-it.net powered by gadgets from m.nu
Niklas
Moderator
Inlägg: 1019
Blev medlem: 22 mar 2008, 21:13
Ort: Stockholm
Kontakt:

Re: Mysql och php problem med åäö

Inlägg av Niklas »

mwd123 skrev:Det roliga är ju att om jag ändrar denna:

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

Till

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

Så funkar ju mysqloutputen med php, men då får jag krångel med mina tabbar och grader istället:
strul1.jpg
Plus att gradtecknet blir fyrkanter istället... men nu är ju min tabell från mysql okej, men man vill ju att allt ska se bra ut :-)
Ja, du kör lite iso-8859-1 och lite UTF-8. Fixa till så att allt blir samma.
Att konvertera iso-8859-1 gör du med utf8_encode i PHP. Typ

Kod: Markera allt

<?php
echo utf8_encode("Hällå Wörld");
?>
<td>{$row['name']}</td> i din kod. Du kan ju testa med <td>{utf8_encode($row['name'])}</td>
mwd123
Tar hemautomation på allvar
Inlägg: 89
Blev medlem: 02 dec 2008, 22:24
Ort: Skogen

Re: Mysql och php problem med åäö

Inlägg av mwd123 »

Hej!

Allt i mysql är nog redan utf8, det fungerade dock inte med det du skrev ovan heller. men eftersom mysql kör med utf8 så ska det väl göras om till iso-8859-1 isåfall?

Mvh Magnus
Now using Tellstick NET + NEXA & PLUGWISE
http://homeauto.does-it.net powered by gadgets from m.nu
Niklas
Moderator
Inlägg: 1019
Blev medlem: 22 mar 2008, 21:13
Ort: Stockholm
Kontakt:

Re: Mysql och php problem med åäö

Inlägg av Niklas »

mwd123 skrev:Hej!

Allt i mysql är nog redan utf8, det fungerade dock inte med det du skrev ovan heller. men eftersom mysql kör med utf8 så ska det väl göras om till iso-8859-1 isåfall?

Mvh Magnus
Då kör du en utf8_decode istället. :-)
mwd123
Tar hemautomation på allvar
Inlägg: 89
Blev medlem: 02 dec 2008, 22:24
Ort: Skogen

Re: Mysql och php problem med åäö

Inlägg av mwd123 »

Exakt den stringen som du angav ovan dödade dock min devices.php, men jag provade göra om den lite, men det blev nog säkert inte rätt :) kanske ska se ut på något annat vis?
Now using Tellstick NET + NEXA & PLUGWISE
http://homeauto.does-it.net powered by gadgets from m.nu
Niklas
Moderator
Inlägg: 1019
Blev medlem: 22 mar 2008, 21:13
Ort: Stockholm
Kontakt:

Re: Mysql och php problem med åäö

Inlägg av Niklas »

mwd123 skrev:Exakt den stringen som du angav ovan dödade dock min devices.php, men jag provade göra om den lite, men det blev nog säkert inte rätt :) kanske ska se ut på något annat vis?
Du kan testa

Kod: Markera allt

echo '<tr>';
echo '<td>'.utf8_decode($row['name']).'</td>';
echo '<td>'.utf8_decode($row['unitid']).'</td>';
echo '<td>'.utf8_decode($row['status']).'</td>';
echo '<td>'.utf8_decode($row['type']).'</td>';
echo '<td>'.utf8_decode($row['rectime']).'</td>';
echo '</tr>';
mwd123
Tar hemautomation på allvar
Inlägg: 89
Blev medlem: 02 dec 2008, 22:24
Ort: Skogen

Re: Mysql och php problem med åäö

Inlägg av mwd123 »

Jag kom precis på att jag glömt spara om filen till utf8 efter jag ändrat i headern, så nu funkar det :)

http://192.168.0.32/rrdtool/devices.php?tab=7

Så att ändra till utf8 i devices.php, och sedan spara om filen till utf8 gjorde susen :D mycket härligt!!

Tack för hjälpen!! :)
Now using Tellstick NET + NEXA & PLUGWISE
http://homeauto.does-it.net powered by gadgets from m.nu
mwd123
Tar hemautomation på allvar
Inlägg: 89
Blev medlem: 02 dec 2008, 22:24
Ort: Skogen

Re: Mysql och php problem med åäö

Inlägg av mwd123 »

En annan liten snabb sak när jag ändå har en expert på tråden :)

<font color="#FFFF40">
<?Php
$file = "temps0.txt";
$contents = file($file);
$string = implode($contents);

echo ('Inne: '.$string.'°');

Visar tempen på min sida, men det är ju ett mellanslag innan grad tecknet,  tecknet kom dit efter att jag sparat om den till utf8, men det funkar ju, tar jag bort  innan gradtecknet så blir det en fyrkant istället.

Hur gör jag för att få bort mellanslaget innan gradtecknet? har du nån aning om det? :) (jag hade mellanslaget innan jag konverterade oxå, men jag vet inte hur jag får bort det)

Tack på förhand!

Mvh Magnus
Now using Tellstick NET + NEXA & PLUGWISE
http://homeauto.does-it.net powered by gadgets from m.nu
Niklas
Moderator
Inlägg: 1019
Blev medlem: 22 mar 2008, 21:13
Ort: Stockholm
Kontakt:

Re: Mysql och php problem med åäö

Inlägg av Niklas »

mwd123 skrev:En annan liten snabb sak när jag ändå har en expert på tråden :)

<font color="#FFFF40">
<?Php
$file = "temps0.txt";
$contents = file($file);
$string = implode($contents);

echo ('Inne: '.$string.'°');

Visar tempen på min sida, men det är ju ett mellanslag innan grad tecknet,  tecknet kom dit efter att jag sparat om den till utf8, men det funkar ju, tar jag bort  innan gradtecknet så blir det en fyrkant istället.

Hur gör jag för att få bort mellanslaget innan gradtecknet? har du nån aning om det? :) (jag hade mellanslaget innan jag konverterade oxå, men jag vet inte hur jag får bort det)

Tack på förhand!

Mvh Magnus
Om det är för att presentera data på en hemsida så kör med &deg vilket ger dig ett gradtecken oavsett kodning.
echo "Inne: $string&deg";
mwd123
Tar hemautomation på allvar
Inlägg: 89
Blev medlem: 02 dec 2008, 22:24
Ort: Skogen

Re: Mysql och php problem med åäö

Inlägg av mwd123 »

Det funkade ju oxå :) blev dock ett mellanslag då med, det kanske inte går att få gradtecknet direkt efter graderna?

Mvh
Now using Tellstick NET + NEXA & PLUGWISE
http://homeauto.does-it.net powered by gadgets from m.nu
Skriv svar