webForumDet fria alternativet

Inga å, ä eller ö i utskriven information

PHP

28 svar · 1 509 visningar · startad av Trankan

Medlem sedan okt. 2006129 inlägg
Frågan#1

Hej!

När jag skriver ut information från en databas så visas bara frågetecken istället för å, ä och ö. Misstänker att det kan bero på att jag använder UTF-8 på sidan medan jag har latin1_swedish_ci i databasen. Har testat att ändra i databasen till bland annat utf8_unicode_ci, men det gav ingen skillnad. Är det någon som vet hur man löser det här problemet? :)

Medlem sedan okt. 20001 285 inlägg
#2

anger du UTF-8 i meta ex taggar? .. sidan bör vara "sparad" i UTF-8 - NO BOM

Medlem sedan okt. 2006129 inlägg
#3

Fuel skrev:

anger du UTF-8 i meta ex taggar? .. sidan bör vara "sparad" i UTF-8 - NO BOM

Ja precis, jag har angett UTF-8 i en meta-tagg.

Medlem sedan juni 20001 251 inlägg
#4
header("Content-type: text/html; charset=utf-8");

Högst upp, innan någon output.

Medlem sedan okt. 2006129 inlägg
#5

stevenet skrev:

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

Högst upp, innan någon output.

Hm, det hjälpte inte. Vad exakt gör den här koden? Jag har ju redan angett UTF-8 som charset inom head-taggarna, så det borde väl inte bli någon skillnad?

Medlem sedan okt. 20001 285 inlägg
#6

är dokumentet sparat i UTF-8 NO BOM som jag sa ?

Medlem sedan okt. 2006129 inlägg
#7

Fuel skrev:

är dokumentet sparat i UTF-8 NO BOM som jag sa ?

Har tyvärr inte koll på hur man gör det i Dreamweaver, men om någon vet så tar jag tacksamt emot den hjälpen. I vilket fall så testade jag att byta charset till ISO-8859-1 och då fungerade det, men det hjälper mig egentligen inte så mycket då det är UTF-8 jag vill använda.

Medlem sedan feb. 2007278 inlägg
#8

Om dina data de fakto är iso-8859-1 så måste dina headers stämma överens med detta. Vill dyu ha unicode måste du börja med att kopiera dina data och konvertera dem.

Att bara ange att det är en annan kodning spelar ingen roll om dina nollor och ettor inte är ändrade!

http://gunther.ne.keryx.se/teckenkodning/

Medlem sedan okt. 20001 285 inlägg
#9

letade lite på Google då jag inte använder DW .. hittade detta http://lss.wisc.edu/~sara/dwutf8.htm men det borde finnas alternativ under "save as" om du inte vill ha UTF-8 för alla dokument.

Medlem sedan okt. 2006129 inlägg
#10

Fuel skrev:

letade lite på Google då jag inte använder DW .. hittade detta http://lss.wisc.edu/~sara/dwutf8.htm men det borde finnas alternativ under "save as" om du inte vill ha UTF-8 för alla dokument.

Någon får gärna rätta mig om jag har fel, men som jag uppfattat det så gör inställningen att alla nya dokument får UTF-8 som charset. I så fall hjälper det inte mig, eftersom jag utan problem kan ändra charset manuellt direkt i koden. Frågan är om jag ens kan ha alla sidor i UTF-8 och få all data att visas korrekt. Jag kanske måste ha ISO-8599-1 på de sidor där jag hämtar data, eller kan jag få databasens information att anpassa sig till UTF-8 på något sätt?

Medlem sedan okt. 20001 285 inlägg
#11

citerar mig själv

det borde finnas alternativ under "save as" om du inte vill ha UTF-8 för alla dokument.

Personligen så gör jag allt i UTF-8 och alla språk fungerar...

Medlem sedan okt. 2006129 inlägg
#12

Fuel skrev:

citerar mig själv

Personligen så gör jag allt i UTF-8 och alla språk fungerar...

Men vad använder du för kollationering i dina databastabeller då? För jag antar att det är det som det hänger på?

Medlem sedan juni 20001 251 inlägg
#13

Trankan skrev:

Men vad använder du för kollationering i dina databastabeller då? För jag antar att det är det som det hänger på?

Problemet kan också vara teckenkodningen för den aktuella anslutningen.

SQL-kod:

SHOW VARIABLES LIKE 'character_set_connection';

Returnerar ovanstående inte utf8 måste du sätta det när du kör skriptet.

mysql_connect();
mysql_select_db();
mysql_query("SET NAMES utf8");

mysql_query("SELECT * FROM table");
Medlem sedan okt. 20001 285 inlägg
#14

utf8_general_ci

Medlem sedan okt. 2006129 inlägg
#15

Tack för svaren båda två, men än så länge är problemet fortfarande olöst. SQL-koden returnerar UTF-8 och det blev ingen skillnad när jag testade utf8_general_ci i databastabellen.

Medlem sedan okt. 20001 285 inlägg
#16

Skicka mig dokumentet så ska jag spara om det åt dig .. så kan vi se om det löser sig

Medlem sedan okt. 2006129 inlägg
#17

Lyckades lösa problemet själv genom att använda stevenets header-kod och byta ut UTF-8 mot ISO-8859-1. I vilket fall, tack till alla er som svarat i tråden! :)

Medlem sedan mars 20041 505 inlägg
#18

...Vilket betyder att texten i din databas är sparad som ISO-8859-1 :)

Medlem sedan feb. 2007278 inlägg
#19

Snabbfakta:

1. Teckenkodningen valideras inte av webbläsaren, PHP eller MySQL. Du måste göra det själv. Om du anger att data skall lagras eller visas i en viss kodning, men sedan de fakto använder en annan, så spelar dina deklarationer ingen roll!

2. Kollationering är inte detsamma som teckenkodning. Kollationeringen anger hur ord skall sorteras, inte vilket teckenkodning de de fakto har.

Medlem sedan okt. 2006129 inlägg
#20

Passar på att ställa en liten till fråga. När jag använder header-koden så får all information på sidan den teckenkodning som anges där. Är det inte möjligt att få teckenkodningen att gälla endast för den information som hämtas från databasen?

269 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
133 ms — ändringar (db)