Permalänk
Inaktiv

Polska bokstäver i phpmyadmin

Hej alla duktiga!

Jag stötte på ett problem för ca 1/2 sedan och trots att jag läste en mängdtrådar i ämnet och testat förstås olika föreslagna lösningar, så har jag inte lyckats lösa problemet.
Problemet uppstod när webhotellet upgraderade phpmyadmin till nuvarande version som är 3.5.8.1
Innan dess har allt fungerat perfekt. Så jag vände mig förstås till supporten på One... men det verkar att de är ännu mindre kunniga och mindre insatta i detta problem än jag. Och jag själv betraktar mig som rena amatör.

Nå väl... hoppas på er och eran snällhet att hjälpa mig här.

Sidan är kodat i en äldre mambo-skrift. Vill inte göra om den då den trots lite gammal kodning, spelar sin funktion.

Problemet nu är i 2 led:
- Via inloggning från hemsidan och vid skrivning av inlägg, polska bokstäver som ą ę ś ć ń ż ź ł
visas korrekt på hemsidan, men tittar man i phpmyadmin i tabellen för content är det BARA kråkor... alltså inte inte frågetecken utan KRÅKOR
- Och tvärtom... redigerar man detta inlägg direkt i phpmyadmin, såvisas allt korrekt i phpmyadmin i tabellen för content, men på hemsidan ändras bokstäver till frågetecken... alltså inte kråkor, utan frågetecken och därmed blir kodning för polska bokstäver helt förlorat.

Sidans inställning är iso-8859-2.... det har det varit hela tiden, även med den äldre versionen av phpmyadnin.
Phpmyadmin NUVARANDE inställningar är:
- för serveranslutning utf8_polish_ci
- för tabellen utf8_polish_ci
- för de respektive fält inne i tabellen utf8_polish_ci
Min webläsare hemma också inställd för utf8

Men jag har testat andra inställningar genom lederna som utf8_general_ci, latin2_bin, latin2_general_ci...

Jag har inte lyckats ställa rätt... så snälla... hjälp en mycket frustrerad nybörjare
Dorra

Permalänk
Medlem
Skrivet av anon241885:

Hej alla duktiga!

Jag stötte på ett problem för ca 1/2 sedan och trots att jag läste en mängdtrådar i ämnet och testat förstås olika föreslagna lösningar, så har jag inte lyckats lösa problemet.
Problemet uppstod när webhotellet upgraderade phpmyadmin till nuvarande version som är 3.5.8.1
Innan dess har allt fungerat perfekt. Så jag vände mig förstås till supporten på One... men det verkar att de är ännu mindre kunniga och mindre insatta i detta problem än jag. Och jag själv betraktar mig som rena amatör.

Nå väl... hoppas på er och eran snällhet att hjälpa mig här.

Sidan är kodat i en äldre mambo-skrift. Vill inte göra om den då den trots lite gammal kodning, spelar sin funktion.

Problemet nu är i 2 led:
- Via inloggning från hemsidan och vid skrivning av inlägg, polska bokstäver som ą ę ś ć ń ż ź ł
visas korrekt på hemsidan, men tittar man i phpmyadmin i tabellen för content är det BARA kråkor... alltså inte inte frågetecken utan KRÅKOR
- Och tvärtom... redigerar man detta inlägg direkt i phpmyadmin, såvisas allt korrekt i phpmyadmin i tabellen för content, men på hemsidan ändras bokstäver till frågetecken... alltså inte kråkor, utan frågetecken och därmed blir kodning för polska bokstäver helt förlorat.

Sidans inställning är iso-8859-2.... det har det varit hela tiden, även med den äldre versionen av phpmyadnin.
Phpmyadmin NUVARANDE inställningar är:
- för serveranslutning utf8_polish_ci
- för tabellen utf8_polish_ci
- för de respektive fält inne i tabellen utf8_polish_ci
Min webläsare hemma också inställd för utf8

Men jag har testat andra inställningar genom lederna som utf8_general_ci, latin2_bin, latin2_general_ci...

Jag har inte lyckats ställa rätt... så snälla... hjälp en mycket frustrerad nybörjare
Dorra

Det finns tre aspekter som måste tas i beaktande:

  1. Databasens encoding

  2. PHPs inställning för encoding

  3. Själva textfilens encoding

Till att börja med: meta-taggar i HTML kan ljuga. Vad du anger för teckenencoding i ett meta-attribut påverkar ingen av ovanstående punkter: det enda tillfället då den faktiskt används är när du visar en HTML-fil lokalt på din egen dator genom att öppna den direkt i en webbläsare. När en resurs servas (med exempelvis PHP) sätts en så kallad HTTP-header enligt rådande inställningar (punkt 2 ovan.)

Ett vanligt symptom på att 1, 2 och 3 inte har samma inställningar är frågetecken eller "kråkor", där frågetecken innebär att webbläsaren har försökt visa upp ett enkelbyte-tecken som ett flerbyte-tecken. Detta inträffar exempelvis när datan är sparad i ISO-8859-2 medan webbläsaren säger sig leverera UTF-8.

Kråkor uppstår vid motsatta förhållanden: Datan är sparad i exempelvis UTF-8 men visas som enkelbytes.

Lägg märke till att kråkorna alltid blir minst dubbelt så många som det tecken de ersätter. Exempelvis blir bokstaven Ä något i stil med "Ä" så KRÄM hade blivit KRÄM. Om du ser detta är alltså datan sparad i multi-byte encoding men visas som single-byte.

I ditt fall verkar det som att datan sparas i UTF-8 men visas upp felaktigt i phpmyadmin. Detta är något som one.com måste korrigera på sin sida. Du bör använda ett bättre verktyg som exempelvis HeidiSQL för att på bra sätt kunna administrera dina data.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Inaktiv

Oj.... STOR TACK för att du tog tid att förklara. Jag ska verkligen sätta i mig i ditt svar, men det tar lite tid då jag är inte så kunnig inom detta.

Jag har kopierat delar av din svar till supporten på min webhotel... för vad jag förstår av ditt svar, så är de de som ska ändra inställningarna?

Och de har svarat följande.... citat:
"Hej!
Först och främst vill jag säga att detta inte är relaterat till COLLATE (alltså utf8_polish_ci etc). Det har alltså ingen betydelse vad du använder för COLLATE på din tabell.

Problemen visar sig endast när du redigerar eller visar text på din hemsida, dvs i Mambo.

phpMyAdmin använder den teckenkodning som används av tabellen. Om det har fungerat annorlunda i tidigare versioner av phpMyAdmin kan jag dessvärre inte svara på.

Du kan se default-inställningarna för bl a charset om du klickar på Variables uppe till höger i phpMyAdmin.

Du kan se att din tabell har charset utf-8 genom att köra följande sats i SQL-fältet i phpMyAdmin:
SHOW CREATE TABLE test_content
Där ser du att DEFAULT CHARSET är utf8.
Såvitt jag kan se av din Mambo-konfiguration så använder du iso-8859-2 där, vilket alltså inte är samma som utf-8. Sidan serveras också av php som iso-8859-2, alltså inte samma som du använder i databasen.

Det går inte att ändra i phpMyAdmin-konfigurationen, så om du vill ha andra inställningar för phpMyAdmin så rekommenderar jag att du gör en installation av phpMyAdmin enligt mina tidigare instruktioner. Då får du full kontroll över config-filen för phpMyAdmin och kan ändra den efter behag. Du kan t ex ändra default charset till iso-8859-2 genom att ändra till:
$cfg['DefaultCharset'] = "iso-8859-2";
Med vänlig hälsning

Tommy
One.com"

Så min fråga till dig... är det så att jag MÅSTE OMINSTALLERA phpmyadmin?

Tack igen för din tid och tålamod med förklarning
Dorra

Permalänk
Medlem

Lånar tråden!

Har fått ett problem sedan igår på en ny hemsida jag då skapade:
I databasen ser texten bra ut, Å, Ä och Ö visas som de ska, om man skriver ut Å,Ä,Ö via echo eller html så ser det bra ut, men om man hämtar text inkluderande Å,Ä,Ö från databasen och skriver ut så blir det frågetecken...
Vad kan jag göra åt detta?

Hur det ser ut i databasen:

Skriver ut via echo & html:

Skriver ut från databasen(Genom en while, skrivs sedan ut via echo):

Visa signatur

Kom ihåg att ALLTID citera mig om du vill ha svar!

|CPU: Intel Core i7 4790K Kyld av: Corsair H80 GPU: ASUS GTX 970 4GB Chassi: Phanteks Enthoo Evolv MOBO: MSI Z97M Gaming Nätagg: XFX 750W Silver SSD: Kingston 120GB SSDNow V300 HDD: Samsung Spinpoint F3 1TB 7200RPM + 1TB|

Permalänk
Medlem
Skrivet av anon241885:

Oj.... STOR TACK för att du tog tid att förklara. Jag ska verkligen sätta i mig i ditt svar, men det tar lite tid då jag är inte så kunnig inom detta.

Jag har kopierat delar av din svar till supporten på min webhotel... för vad jag förstår av ditt svar, så är de de som ska ändra inställningarna?

Och de har svarat följande.... citat:
"Hej!
Först och främst vill jag säga att detta inte är relaterat till COLLATE (alltså utf8_polish_ci etc). Det har alltså ingen betydelse vad du använder för COLLATE på din tabell.

Problemen visar sig endast när du redigerar eller visar text på din hemsida, dvs i Mambo.

phpMyAdmin använder den teckenkodning som används av tabellen. Om det har fungerat annorlunda i tidigare versioner av phpMyAdmin kan jag dessvärre inte svara på.

Du kan se default-inställningarna för bl a charset om du klickar på Variables uppe till höger i phpMyAdmin.

Du kan se att din tabell har charset utf-8 genom att köra följande sats i SQL-fältet i phpMyAdmin:
SHOW CREATE TABLE test_content
Där ser du att DEFAULT CHARSET är utf8.
Såvitt jag kan se av din Mambo-konfiguration så använder du iso-8859-2 där, vilket alltså inte är samma som utf-8. Sidan serveras också av php som iso-8859-2, alltså inte samma som du använder i databasen.

Det går inte att ändra i phpMyAdmin-konfigurationen, så om du vill ha andra inställningar för phpMyAdmin så rekommenderar jag att du gör en installation av phpMyAdmin enligt mina tidigare instruktioner. Då får du full kontroll över config-filen för phpMyAdmin och kan ändra den efter behag. Du kan t ex ändra default charset till iso-8859-2 genom att ändra till:
$cfg['DefaultCharset'] = "iso-8859-2";
Med vänlig hälsning

Tommy
One.com"

Så min fråga till dig... är det så att jag MÅSTE OMINSTALLERA phpmyadmin?

Tack igen för din tid och tålamod med förklarning
Dorra

Går det ens att installera om phpMyAdmin? De flesta webbhotell har det förinstallerat och knyter det dynamiskt mot den databas som tillhör användarkontot.

Jag hade försökt att byta encoding på själva webbplatsen istället, dvs encoda om alla filer i UTF-8 (om de inte redan är det) samt ställa in php så att den också använder det. Jag vet inte hur svårt det är att göra i Mambo.

Visa signatur

Kom-pa-TI-bilitet