ÅÄÖ visas inte

Tråden skapades och har fått 1 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Arvika
  • 2008-03-31 21:04

God kväll!
Jag sitter och sliter mitt hår, när jag hämtar data ur en databas funkar inte ÅÄÖ utan det visas bara "�". Annars funkar ÅÄÖ som det ska på hemsidan, det är bara det från databasen som visas fel.

Kör UTF-8, och i phpMyAdmin har jag valt "sv-utf-8" som språk.
När jag väljer ISO-8859-1 som kodning i Firefox blir det tvärtom, ÅÄÖ funkar i datan från databasen men inte på resten av sidan.

Hoppas ni fattar vad jag menar...har googlat i timmar och orkar inte tänka mer
Hjälp uppskattas oerhört mycket!

EDIT: Ändrade till ISO-8859-1 i phpMyAdmin och då visades inte ÅÄÖ där heller. Det var inte sååå mycket data så jag skrev om det så nu funkar det. Sorry att jag skapade en tråd i onödan *ställer mig i skamvrån*

Senast redigerat 2008-03-31 22:11

För referens:

Om man
1) Väljer MySQL charset: UTF-8 Unicode (utf8) (vid installation/konf - detta är förval)
2) Väljer utf8_unicode_ci som connection collation i phpMyAdmin
3) I sitt db anslutningsscript definierar utf8 efter att du valt databas, t ex så här (tredje raden):
$connect = mysql_connect("localhost", "anvnamn", "losenord") or die (mysql_error());
mysql_select_db("dindb");
mysql_query("SET NAMES utf8");

Så kan du definiera dina tabeller med i stort sett vilken encoding du vill, samt ha olika encodings i olika tabeller i samma databas. Kanon när man (modern som man är) kör allting i utf8 men ibland behöver importera ISO-tabeller m m.

När det sedan gäller hantering av sökning med LIKE mot en blandad eller avvikande databas så behöver man konvertera encoding "on the fly", med COLLATE. T ex så här:

SELECT * FROM table WHERE column COLLATE utf8_swedish_ci LIKE '%".$search_word."%'

1
Bevaka tråden