webForumDet fria alternativet

Inga å, ä och ö i databasen

Linux & BSD

6 svar · 688 visningar · startad av Rogger

Medlem sedan jan. 2000566 inlägg
Frågan#1

Håller på med en nyinstallation (Gentoo 2006.0) av hemmaservern. Jag har nu stött på ett problem då php-5.1.4 komunicerar med mysql-4.1.20 (bägge ur portage trädet). Scriptet fungerar och ser helt ok ut men när strängen ska sparas så kapas den från och med eventuellt "å", "ä" eller "ö". Eller något annat specialtecken, dock inte "@"!

Samma problem uppstår med två olika script (bloggar) så problemet borde ligga i antingen php eller mysql. phpmyadmin klagade på att 'mbstring' saknades så detta lyckdes jag lägga till och avkommenterade mbstringraderna i php.ini. Ingen skillnad tyvärr. Hur ska php "emerge" för att få "--enable-mbstring=all" i configure? Det finns ingen USE-flagga vad jag kan se.

I my.cnf har jag avkommenterat alla rader med "default-charset=utf8" då dessa inte finns med i den gamla installationen öht. Utan resultat. :(

Om jag tvingar in "åäö" i databasen med hjälp av phpmyadmin så blir det bara skräptecken när det visas i webläsaren, se länken.

Är detta ett konfigurationsfel eller ett kompilationsfel?? Någon USE-flagga kan vara fel, men vilken. Det finns ju rätt många att välja på! :x

Lite exempel, raden under "Detta ar" är kapad: http://rogrrr.konvaljen.nu/sblog/

http://rogrrr.konvaljen.nu/phpinfo.php

Tacksam för idéer...

Medlem sedan dec. 200171 inlägg
#2

test xyzåäö

Du skickar sidans innehåll som

Content-Type: text/html; charset=iso-8859-1

vilket gör att dina åäö som är i UTF-8 blir knasiga. Detta går att lösa på flera sätt. Antingen ändrar du i Apaches konfiguration så att den skickar sidor som UTF-8 som default, eller så skickar du en

header("Content-Type: text/html; charset=utf-8");

i ditt PHP-skript, eller så lägger du till

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

i head-delen av HTML-koden.

Du kan även ändra så att MySQL-databasen inte kör med UTF-8, eller så konverterar du alla strängar från UTF-8 till ISO-8859-1 innan du skriver ut dom.

Medlem sedan maj 20031 472 inlägg
#3

Du kan köra med USE-flaggan: latin1

De har ändrat så nu är UTF-8 standard och det är bra, men det ställer till problem vid uppgradering.

Medlem sedan jan. 2000566 inlägg
#4

greyhound skrev:

Du kan köra med USE-flaggan: latin1

De har ändrat så nu är UTF-8 standard och det är bra, men det ställer till problem vid uppgradering.

Det verkar stämma, i phpmyadmin rapporteras UTF-8 Unicode (utf8) som MySQL teckenuppsättning. Således är detta ett mysql problem, eller?

Nästa problem uppstår då jag gör en reemerge av mysql med latin1 flaggan.

USE="latin1" emerge mysql skrev:

configure: error: Could not find system readline or libedit libraries
Use --with-readline or --with-libedit to use the bundled
versions of libedit or readline

readline är installerat, libedit likaså. En mera generell portagefråga; om jag vill köra emerge och samtidigt skicka "--with-readline". Hur gör jag då? Var finns "make"-filen och hur ändrar jag i den?

Medlem sedan maj 20031 472 inlägg
#5

Kör inte med USE="" jag har läst att det är en dålig ide, ändra istället i "/etc/portage/package.use"

/etc/portage/package.use

dev-db/mysql latin1
Medlem sedan jan. 2000566 inlägg
#6

Tackar greyhound! :bire latin1 flaggan fixade det! Jag måste stirrat mig blind på php och helt missat denna. Problem vid uppgradering blev det mycket riktigt. :)

"configure: error:" berodde på att jag strulat i make.conf... :r

phpmyadmin klagar fortfarande på att mbstring inte kunde hittas men jag tror att jag låter det vara som det är. Allt tecken blir rätt, även i phpmyadmin.

Medlem sedan maj 20031 472 inlägg
#7

Rogger skrev:

phpmyadmin klagar fortfarande på att mbstring inte kunde hittas men jag tror att jag låter det vara som det är. Allt tecken blir rätt, även i phpmyadmin.

Jag har samma fel, men orkar inte fixa det :)

258 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)