Kom ihåg mig?
Home Menu

Menu


utf8 o.s.v. en gång för alla

 
Ämnesverktyg Visningsalternativ
Oläst 2009-04-02, 21:29 #1
Althalos Althalos är inte uppkopplad
Medlem
 
Reg.datum: Jan 2006
Inlägg: 282
Althalos Althalos är inte uppkopplad
Medlem
 
Reg.datum: Jan 2006
Inlägg: 282
När man hämtar information ifrån en mysqldatabas, hur ska man göra för att kunna skriva ut åäö? Det fungerar oftast inte för mig och har aldrig förstått varför :S

har ju något med teckenkodning. Brukar fulhakka utf8_decode(), om inget annat hjälper.
Althalos är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-04-02, 21:45 #2
Jimpsson Jimpsson är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 428
Jimpsson Jimpsson är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 428
Spara filerna som UTF-8 utan BOM.
Sätt header("Content-type: text/html; charset=utf-8"); högst upp i index.
Sätt mysql_query("SET NAMES UTF8"); efter att du skapat din databasanslutning.
Jimpsson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-04-02, 21:56 #3
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Använder du MySQLi så fungerar: set_charset('utf8') på samma sätt som Rokkan1 skrev med "SET NAMES".
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-04-03, 01:23 #4
Jines avatar
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Feb 2005
Inlägg: 1 032
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
Jines avatar
 
Reg.datum: Feb 2005
Inlägg: 1 032
Citat:
Originally posted by Rokkan1@Apr 2 2009, 20:45
Spara filerna som UTF-8 utan BOM.
Sätt header(Content-type: text/html; charset=utf-8); högst upp i index.
Sätt mysql_query(SET NAMES UTF8); efter att du skapat din databasanslutning.
Samt även:
Kod:
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
... överst i din HTML fil.

Glöm inte heller att lagra datan i MySQL som UTF-8.



Alternativt mysql_set_charset för vanliga MySQL (Rekomenderas av PHP's manual istället för SET NAMES's queryn.)

Citat:
Note: This is the preferred way to change the charset. Using mysql_query() to execute SET NAMES .. *is not recommended.

ELLER, om problemet fortfarande kvarstår KAN det vara en lösning att tvinga MySQL till att använda UTF-8 till "ALLT"
Med tex:
Kod:
mysql_query("SET character_set_results = 'utf8', 
character_set_client = 'utf8', 
character_set_connection = 'utf8', 
character_set_database = 'utf8', 
character_set_server = 'utf8'", $conn);
Jine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-04-03, 08:18 #5
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Det står aldrig någonstans varför man inte ska använda SET NAMES i sin query? Vore intressant att veta. Däremot var det någon som försökt göra detta med arabiska tecken och det inte fungerat så det finns ju uppenbarligen någon nackdel med det.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-04-03, 09:20 #6
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Man använder kanske inte "set names" i varje fråg utan en gång när man skapar anslutningen. Behövs inte om servern är rätt konfigurerad från början, kolla genom att ställa frågan "SHOW VARIABLES LIKE 'char%';"
För korrekt presentation i browsern är det läge att skicka med rätt headers, i apache gör man det genom att sätta direktivet DefaultCharset i konfigureringen.
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-04-03, 09:27 #7
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Citat:
Originally posted by Magnus_A@Apr 3 2009, 09:20
Man använder kanske inte set names i varje fråg utan en gång när man skapar anslutningen. Behövs inte om servern är rätt konfigurerad från början, kolla genom att ställa frågan SHOW VARIABLES LIKE char%;
För korrekt presentation i browsern är det läge att skicka med rätt headers, i apache gör man det genom att sätta direktivet DefaultCharset i konfigureringen.
Jo, att man inte ska använda det i varje fråga är väl en grej =) Det var inte det jag syftade på. Det är inte alltid man har tillgång till serverkonfigurationen så ibland behövs det faktiskt.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-04-03, 10:59 #8
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Missuppfattade dig, sorry.
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-04-03, 20:45 #9
Althalos Althalos är inte uppkopplad
Medlem
 
Reg.datum: Jan 2006
Inlägg: 282
Althalos Althalos är inte uppkopplad
Medlem
 
Reg.datum: Jan 2006
Inlägg: 282
tack ska ni ha. Äntligen! Har inte förstått det här innan. SET NAMES UTF8 är det samma som att typ ändra kollationeringen lr vad det heter på tabellerna?
Althalos är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-04-03, 22:26 #10
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Citat:
Originally posted by Althalos@Apr 3 2009, 20:45
tack ska ni ha. Äntligen! Har inte förstått det här innan. SET NAMES UTF8 är det samma som att typ ändra kollationeringen lr vad det heter på tabellerna?
Inte alls. Kollationering styr endast hur resultatet sorteras när du begär sort by (kolumn). Olika kollationeringar är giltiga i olika teckenuppsättnignar, utöver det har det inget att göra med teckenuppsättningen.
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 20:34.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017