|  | 		    
					
        
         
          
         
	
          | |  | Postgresql og client encoding Fra : Martin Kaltoft
 | 
 Dato :  11-04-06 13:09
 | 
 |  | Hejsa
 
 Jeg har en PHP app hvor jeg bruger postgresql som DB, jeg har dog et
 problem.
 
 Når jeg indsætter data, og viser det på siden bliver de danske tegn (æøå)
 vist forkert. Serveren kører med UNICODE, og client_encoding er også sat
 til unicode. Jeg har så prøvet at sætte client_encoding til LATIN1, men så
 får jeg at vide at den ikke kan konvertere fra UTF-8 til LATIN1...
 
 Når jeg ser database indholdet i phpPgAdmin, ser alle tegn ud som de skal,
 så PHP kan jo godt vise det rigtigt, men hvordan?
 
 --
 Med venlig hilsen
 
 Martin Kaltoft
 
 
 |  |  | 
  Michael Rasmussen (11-04-2006) 
 
	
          | |  | Kommentar Fra : Michael Rasmussen
 | 
 Dato :  11-04-06 14:03
 | 
 |  | 
 
            On Tue, 11 Apr 2006 14:08:30 +0200, Martin Kaltoft wrote:
 > 
 > Når jeg ser database indholdet i phpPgAdmin, ser alle tegn ud som de
 > skal, så PHP kan jo godt vise det rigtigt, men hvordan?
 I alle dine php-sider, hvor der genereres html, skal du have følgende
 tilføjet i header elementet:
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 Da du selvfølgelig laver validerende html! har du fået dine sider
 valideret ved http://validator.w3.org,  og burde derfor være blevet
 advaret om manglende charset angivelse.
 -- 
 Hilsen/Regards
 Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917 |  |  | 
  Martin Kaltoft (11-04-2006) 
 
	
          | |  | Kommentar Fra : Martin Kaltoft
 | 
 Dato :  11-04-06 15:37
 | 
 |  | 
 
            > I alle dine php-sider, hvor der genereres html, skal du have følgende
 > tilføjet i header elementet:
 > <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 Jeg har dette nu: <meta http-equiv="Content-Type" content="text/html;
 charset=iso-8859-1" />
 Skifter jeg til utf-8 ændrer det ikke noget.
 > Da du selvfølgelig laver validerende html! har du fået dine sider
 > valideret ved http://validator.w3.org,  og burde derfor være blevet
 > advaret om manglende charset angivelse.
 Det er checket med validatoren, og min iso-8859-1 validerer også.
 Jeg har i øvrigt også svært ved at tro at det er på clientside at problemet
 er, da tegnene også er forvrænget i HTML-koden, så det er altså det
 postgresql leverer der er problemet.
 Vil man i øvrigt se problemet in action er siden her: 
 <http://www.ebz.dk/index.php?category=10> -- 
 Med venlig hilsen
 Martin Kaltoft
            
             |  |  | 
   Michael Rasmussen (11-04-2006) 
 
	
          | |  | Kommentar Fra : Michael Rasmussen
 | 
 Dato :  11-04-06 16:43
 | 
 |  | 
 
            On Tue, 11 Apr 2006 16:37:12 +0200, Martin Kaltoft wrote:
 > Vil man i øvrigt se problemet in action er siden her:
 > <http://www.ebz.dk/index.php?category=10> Jeg kan se, at dit charset stadigvæk er iso-8859-1. Hvis jeg tvinger min
 firefox til at anvende utf-8, fremvises teksten korrekt. Hvilken browser
 benytter du? Hvis det er IE, kan den være vanskelig at overtale til at
 anvende andet end win-1251. For at det skal virke, skal du være helt
 sikker på, at du tvinger IE i standard complaince mode. Dette kan du
 sikre dig, hvis de første 2 tegn i dine html-filer er følgende:
 <! - efterfulgt af korrekt doctype. Når jeg fremviser din side i
 html-mode, kan jeg se, at du har indsæt en tom linje først i dokumentet,
 hvilket får den konsekvens, at IE kører i quirks mode.
 Altså:
 1) Absolut første linje i dine filer skal være:
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> Husk ingen blanktegn før <!
 2) Angiv dit charset som utf-8.
 3) Du bør overveje eksplicit at angive, at dokumentet er et xml-dokument,
 hvorfor du bør starte dine dokumenter således:
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> Dette sikre dig, at alle varianter af IE kører i standard compliance mode
 - gælder især for IE7, hvor denne form er krævet.
 PS. dine sider validerer ikke: f.eks. skal & skrives som & da tegnet &
 angiver start på en html-tegnkode.
 -- 
 Hilsen/Regards
 Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917 |  |  | 
    Martin Kaltoft (11-04-2006) 
 
	
          | |  | Kommentar Fra : Martin Kaltoft
 | 
 Dato :  11-04-06 17:03
 | 
 |  | > Jeg kan se, at dit charset stadigvæk er iso-8859-1. Hvis jeg tvinger min
 > firefox til at anvende utf-8, fremvises teksten korrekt. Hvilken browser
 
 Ja, jeg ændrede det tilbage, men nu prøvede jeg lige igen, og det virker som
 det skal nu !? Jeg må have gjort det forkert i første omgang...
 
 > benytter du? Hvis det er IE, kan den være vanskelig at overtale til at
 > anvende andet end win-1251. For at det skal virke, skal du være helt
 
 Jeg har lige testet det, og at sætte charset til utf-8 får det til at virke
 i både firefox og MSIE.
 
 > PS. dine sider validerer ikke: f.eks. skal & skrives som & da tegnet &
 > angiver start på en html-tegnkode.
 
 Ja, jeg ved godt at der er et par detaljer der ikke validerer, men det er
 ikke ret højt på prioritetslisten i øjeblikket, men tak for hjælpen...
 
 --
 Med venlig hilsen
 
 Martin Kaltoft
 
 
 |  |  | 
     Michael Rasmussen (11-04-2006) 
 
	
          | |  | Kommentar Fra : Michael Rasmussen
 | 
 Dato :  11-04-06 17:28
 | 
 |  | 
 
            On Tue, 11 Apr 2006 18:03:06 +0200, Martin Kaltoft wrote:
 > 
 > Ja, jeg ændrede det tilbage, men nu prøvede jeg lige igen, og det virker
 > som det skal nu !? Jeg må have gjort det forkert i første omgang...
 > 
 Måske din browser har anvendt en cachet version?
 -- 
 Hilsen/Regards
 Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917 |  |  | 
    Knud Gert Ellentoft (11-04-2006) 
 
	
          | |  | Kommentar Fra : Knud Gert Ellentoft
 | 
 Dato :  11-04-06 21:58
 | 
 |  | 
 
            Michael Rasmussen skrev:
 ><?xml version="1.0" encoding="UTF-8"?>
 ><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 >"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> >
 >Dette sikre dig, at alle varianter af IE kører i standard compliance mode
 >- gælder især for IE7, hvor denne form er krævet.
 Med ovennævnte vil IE 6 gå i quirk mode.
 -- 
 Topposter du svar, dvs. skriver dit svar over det citerede, 
 så ryger du på min ignoreringsliste.
 Svar under det du citerer og citer kun det du svarer på - tak.
http://usenet.dk/netikette/citatteknik.html |  |  | 
     Michael Rasmussen (11-04-2006) 
 
	
          | |  | Kommentar Fra : Michael Rasmussen
 | 
 Dato :  11-04-06 23:24
 | 
 |  |  |  |  | 
      Erik Ginnerskov (12-04-2006) 
 
	
          | |  | Kommentar Fra : Erik Ginnerskov
 | 
 Dato :  12-04-06 00:50
 | 
 |  |  |  |  | 
       Michael Rasmussen (12-04-2006) 
 
	
          | |  | Kommentar Fra : Michael Rasmussen
 | 
 Dato :  12-04-06 00:58
 | 
 |  |  |  |  | 
        Erik Ginnerskov (12-04-2006) 
 
	
          | |  | Kommentar Fra : Erik Ginnerskov
 | 
 Dato :  12-04-06 01:54
 | 
 |  | 
 
            Michael Rasmussen wrote:
 >> http://hjemmesideskolen.dk/html/testsider/quirks.asp >> http://hjemmesideskolen.dk/html/testsider/standard.asp > Kan du løfte lidt af sløret for, hvad jeg burde se?
 > I min IE6 ser jeg ingen forskel på de to sider.
 Umiddelbart vil du i IE - og ikke i andre browsere - kunne se, at
 forskellige elementer i topbaren springer lidt frem og tilbage, når du
 skifter mellem de to sider (link i menukolonnen til venstre).
 Men hvis du i dine foretrukne etablerer et link - kald det eks. mode-info og
 med dette indhold (i en ubrudt linje):
 javascript:var%20d=document,dd=d.doctype,s;s='RENDER:%20%20\t';if(d.compatMo
 de=='CSS1Compat'){s+='Standard';}else{s+='Quirks';}if(dd){s+='\nSYSTEM:\n'+d
 d.systemId;s+='\nPUBLIC:\t'+dd.publicId;}if(d.characterSet||d.charset){s+='\
 nENCODING:\t';s+=d.characterSet?d.characterSet:d.charset;}s+='\nMODIFIED:\t'
 +d.lastModified;alert(s);
 .... vil du kunne fremkalde en alert-boks, som fortæller, at den ene side
 sætter IE i quirks-mode, mens den anden sætter IE i standards-mode.
 Eneste forskel på de to sider (bortset fra teksten i #indhold og linket til
 den anden side) er, at jeg i quirks.asp har indsat denne kodelinje øverst:
     <?xml version="1.0" encoding="iso-8859-1"?>
 -- 
 Med venlig hilsen
 Erik Ginnerskov
http://hjemmesideskolen.dk/  - http://ginnerskov.dk/
http://html-faq.dk/ |  |  | 
  Martin Kaltoft (12-04-2006) 
 
	
          | |  | Kommentar Fra : Martin Kaltoft
 | 
 Dato :  12-04-06 12:48
 | 
 |  | > Når jeg indsætter data, og viser det på siden bliver de danske tegn (æøå)
 > vist forkert. Serveren kører med UNICODE, og client_encoding er også sat
 > til unicode. Jeg har så prøvet at sætte client_encoding til LATIN1, men så
 > får jeg at vide at den ikke kan konvertere fra UTF-8 til LATIN1...
 
 Tja, det hjalp jo så at sætte charset til utf-8 i HTML'en.
 
 Men, jeg genererer også nogle PDF'er på siden, ud fra data i min postgresql,
 og dér ser æøå ud på samme måde som da charset var sat forkert i HTML'en.
 
 Hvorledes ændrer jeg det dér? Det er data der kommer direkte fra postgresql,
 som ser ok ud i phpmyadmin, og på resten af hjemmesiden, men når jeg
 propper dem i en PDF er æøå forkerte...
 
 --
 Med venlig hilsen
 
 Martin Kaltoft
 
 
 |  |  | 
  Mads Lie Jensen (15-04-2006) 
 
	
          | |  | Kommentar Fra : Mads Lie Jensen
 | 
 Dato :  15-04-06 11:20
 | 
 |  | 
 
            On Wed, 12 Apr 2006 13:47:50 +0200, Martin Kaltoft <kaltoft@gmail.com>
 wrote:
 >Men, jeg genererer også nogle PDF'er på siden, ud fra data i min postgresql,
 >og dér ser æøå ud på samme måde som da charset var sat forkert i HTML'en.
 >
 >Hvorledes ændrer jeg det dér? Det er data der kommer direkte fra postgresql,
 >som ser ok ud i phpmyadmin, og på resten af hjemmesiden, men når jeg
 >propper dem i en PDF er æøå forkerte...
 Hvordan "propper" du de data i pdf-filen?
 -- 
 Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
 Gartneriet - nu ny indpakning (delvist i hvert fald): http://www.gartneriet.dk/ |  |  | 
 |  |