10. december 2005 - 12:43Der er
15 kommentarer og 1 løsning
Min phpMyAdmin viser ikke UTF-8 korrekt
Hej :o) Jeg har kæmpet en del med at få min phpmyadmin til at vise utf-8 korrekt. Håber nogen kan hjælpe mig.
Mere præcist om min situation: Mine sider kører fint og utf8 virker fint med diverse polske og danske specialtegn. Både når jeg henter ud af databasen og når jeg skriver til databasen, så virker det fint så længe jeg gør det på hjemmesiden.
Hvad er der galt: Det er kun min phpmyadmin der opfører sig underligt. Den viser ikke indholdet i databasen korrekt, men erstatter specialtegn med A¨^ og lignende. Og hvis jeg skriver/redigerer i databasen med phpmyadmin(PMA), så går indholdet på hjemmesiden helt i kage og viser underlige tegn :o)
Jeg har adgang til php.ini filen. Og jeg har indstalleret den nyeste version af Phpmyadmin(PMA) på serveren.
Hvad kan være årsagen/løsningen på mit problem?
Jeg har prøvet at køre en mysql_query("SET NAMES 'utf8'") når jeg starter PMA op, og det gjorde ingen forskel.
Ingen vil dele tastatur med ti kolleger. HP EliteBoard samler computeren i tastaturet og gør det personlige udstyr mobilt på det hybride kontor.
Slettet bruger
10. december 2005 - 20:08#1
Jeg tror ikke, det er MySQLs indstillinger, du skal pille ved for at få det til at virke. I stedet er det PMAs egen opsætning, du skal se på. Jeg vil tro, at det er disse indstillinger, du skal se efter:
$cfg[DefaultCharset] skal nok sættes til utf8
$cfg[AllowAnywhereRecoding] skal nok sættes til true, og så skulle der komme en menu, hvor man kan vælge mellem tegnsæt på PMAs forside.
$cfg[AvailableCharsets] indeholder de tegnsæt, der skal være i menuen.
Jeg har kigget på dit forslag og fundet ud af at $cfg['AllowAnywhereRecoding'] var sat til false. Jeg har rettet til: $cfg['AllowAnywhereRecoding'] = TRUE; uploaded og testet.
Resultatet er denne fejlbesked: Kan ikke indlæse iconv eller omkode nødvendig udvidelse til tegnsæt-konvertering, konfigurer php til at tillade brug af disse udvidelser eller slå tegnsæt-konvertering fra i phpMyAdmin
Jeg har kigget lidt i PMA filerne og fundet ud af følgende: $strCantLoadRecodeIconv = "Kan ikke indlæse iconv eller omkode nødvendig udvidelse til tegnsæt-konvertering, konfigurer php til at tillade brug af disse udvidelser eller slå tegnsæt-konvertering fra i phpMyAdmin";
/** * Loads the recode or iconv extensions if any of it is not loaded yet */ if (isset($cfg['AllowAnywhereRecoding']) && $cfg['AllowAnywhereRecoding'] && $allow_recoding) {
if ($cfg['RecodingEngine'] == 'recode') { if (!@extension_loaded('recode')) { PMA_dl('recode'); if (!@extension_loaded('recode')) { echo $strCantLoadRecodeIconv; exit; } } $PMA_recoding_engine = 'recode'; } else if ($cfg['RecodingEngine'] == 'iconv') { if (!@extension_loaded('iconv')) { PMA_dl('iconv'); if (!@extension_loaded('iconv')) { echo $strCantLoadRecodeIconv; exit; } } $PMA_recoding_engine = 'iconv'; } else { if (@extension_loaded('iconv')) { $PMA_recoding_engine = 'iconv'; } else if (@extension_loaded('recode')) { $PMA_recoding_engine = 'recode'; } else { PMA_dl('iconv'); if (!@extension_loaded('iconv')) { PMA_dl('recode'); if (!@extension_loaded('recode')) { echo $strCantLoadRecodeIconv; exit; } else { $PMA_recoding_engine = 'recode'; } } else { $PMA_recoding_engine = 'iconv'; } } } } // end load recode/iconv extension
her er indholdet i min php.ini fil : safe_mode = On register_globals = Off default_charset = "UTF-8" safe_mode_allowed_env_vars = PHP_,LANG,LANGUAGE
Jeg har prøvet at tilføje dette til min php.ini : iconv.input_encoding = "utf-8" iconv.output_encoding = "utf-8" iconv.internal_encoding = "utf-8" men det hjalp ikke..
Ok :o) Jeg beder min host om at installere iconv (eller recode) extensionen
Tror du at jeg skal skrive: iconv.input_encoding = "utf-8" iconv.output_encoding = "utf-8" iconv.internal_encoding = "utf-8" i min php.ini ????
Mange tak, jeg tror at du hjalp mig på rette vej sandbox :o)
Synes godt om
Slettet bruger
12. december 2005 - 04:26#7
Nej, jeg tror ikke det er nødvendigt at pille i php.ini, da dine normale php-scripts fungerer fint allerede. Det er bare PMA, som skal "lære" hvilke tegnsæt, du bruger.
Synes godt om
Slettet bruger
12. december 2005 - 04:27#8
Og så lægger jeg lige et svar. Du kan bare vente med at acceptere det, til du har løst problemet.
iconv er blevet installeret nu, men jeg oplever stadig problemet med at tegnene ike vises korrekt :o( Når jeg kører en phpinfo skriver den følgende unde iconv: iconv iconv support enabled iconv implementation unknown iconv library version unknown
Directive Local Value Master Value iconv.input_encoding ISO-8859-1 ISO-8859-1 iconv.internal_encoding ISO-8859-1 ISO-8859-1 iconv.output_encoding ISO-8859-1 ISO-8859-1
Tror du nu at jeg skal skrive: iconv.input_encoding = "utf-8" iconv.output_encoding = "utf-8" iconv.internal_encoding = "utf-8" i min php.ini ????
Derudover får jeg denne advarsel af phpmyadmin når jeg logger ind: PHP-udvidelsen mbstring blev ikke fundet og du ser ud til at bruge et multibyte tegnsæt. Uden mbstring-udvidelsen er phpMyAdmin ude af stand til at opdele strenge korrekt og dette kan forårsage uventede resultater.
Tyder det på at mbstring også skal installeres for at det virker? Eller er det ligegodt?
Synes godt om
Slettet bruger
13. december 2005 - 06:04#10
Jeg er ikke sikker. Det kan godt være, at du skal have mbstring også.
Jeg vil stadig mene, at du ikke skulle behøve de indstillinger for iconv i php.ini, men de kan nok ikke skade, og muligvis skal de bruges, så prøv ad.
Nu virker det sku :o) Tusind tak Jeg er ikke helt klar over hvad der har gjort forskellen, men det skal jeg til at forske lidt i de næste dage. Jeg havde ik klaret det uden dig sandbox og ekspertens forum :o) Tak
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.