[WEB/PHP] Euro teken wordt Vraagteken na upgrade

Pagina: 1
Acties:
  • 747 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 07-06 21:37
He mensen...

Ik ben met een site voor iemand bezig, en heb deze op mijn server uitgewerkt. Daarna verhuizen naar zijn server, alleen daar bleek een te oude PHP versie op te staan. Bepaalde mail commandos werkten niet, maar de rest van de site wel. Op dat moment: Alle euro tekens worden afgebeeld. Op mijn verzoek is de software allemaal geupgrade.

Na de upgrade zijn alle € euro tekens veranders in ? vraagtekens. Ik dacht vreemd, misschien iets veranderd aan de bron. Maar nee die is het zelfde. Er staat in de bron gewoon €.

Nu blijkt dat ik het euroteken wel kan afbeelden met de html code voor het euroteken namelijk:
code:
1
€
Alleen bij het maken van de pagina's is het erg irritant om elke keer die code te plaatsen in plaats van even op ALT+5 te drukken.

Aan welke instelling kan dit liggen op de server? Want ik kon op Google en de search van tweakers niets vinden...

[ Voor 4% gewijzigd door Saeverix op 06-01-2005 22:15 ]

Chookity-pok


Acties:
  • 0 Henk 'm!

  • Remus
  • Registratie: Juli 2000
  • Laatst online: 15-08-2021
Dit heeft te maken met encoding van je pagina. Het euroteken wordt niet gedefinieerd in ISO-8859-1 en wordt dan getoond als ? in de meeste browsers; vermoedelijk worden je pagina's als ISO-8859-1 verstuurd. De juiste encoding is ISO-8859-15 of evt UTF-8.
Je kan ook gewoon
code:
1
€
gebruiken in je HTML-code.

[ Voor 8% gewijzigd door Remus op 06-01-2005 22:19 ]


Acties:
  • 0 Henk 'm!

  • Johnny
  • Registratie: December 2001
  • Laatst online: 07-06 11:56

Johnny

ondergewaardeerde internetguru

Aan de encoding die wordt meegestuurd met de pagina.

Waarschijnlijk moet je hem zelf handmatig nog instellen op ISO 8859-15, dat kan via .htaccess, een PHP header of, als het echt niet anders kan via een meta tag in je HTML code.

Je kunt het testen door in je browser handmatig een andere encoding te kiezen (even zoeken in het menu) en kijken bij welke het euro teken wel verschijnt.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 19-05 13:58

drm

f0pc0dert

Dat heeft te maken met de character encoding. Je moet de bestanden over HTTP in dezelfde character encoding versturen als waarin je ze opslaat, dan weet de browser namelijk welke conversietabel hij moet gebruiken. Ik neem aan dat het euroteken wel in de ISO-8859-1 encoding staat. Je kunt in de apache configuratie aangeven wat de content-encoding van php files moet zijn of in PHP met Header de juiste headers meegeven. Voor meer informatie moet je even in de HTTP RFC kijken (zie http://www.faqs.org).

Maar over het algemeen gesproken is het beter wel gebruik te maken van de entity-references (zoals €), juist om dit soort problemen te voorkomen.

edit:
:( @ entity-afhandeling van react. Daar moeten ze echt 's wat aan doen.

[ Voor 8% gewijzigd door drm op 06-01-2005 22:19 ]

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 14:50
Je kunt in een HTML pagina de character set zetten die de browser dan gebruikt om de pagina te genereren. Zo zijn er een heleboel verschillende om bijvoorbeeld Chinese letter fatsoenlijk weer te geven.

Dit kan met een META-tag in de HEAD van je HTML pagina. Als je in de source van bijvoorbeeld dit topic kijkt zie je daar staan: "<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">". Die charset kun je dus veranderen.

[ Voor 11% gewijzigd door Sybr_E-N op 06-01-2005 22:21 ]


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 07-06 21:37
met <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15"> blijft het nog steeds het zelfde...

dan moet ik het dus in de apache instellingen zoeken... dat lijkt me de meest goeie oplossing. of niet?

[ Voor 11% gewijzigd door Saeverix op 06-01-2005 22:29 ]

Chookity-pok


Acties:
  • 0 Henk 'm!

  • DiedX
  • Registratie: December 2000
  • Laatst online: 08:53
Ik denk dat in Apache de AddDefaultCharSet aanstaat. Zet die eens uit en reload Apache.

DiedX supports the Roland™, Sound Blaster™ and Ad Lib™ sound cards


Acties:
  • 0 Henk 'm!

  • vriesdude
  • Registratie: Februari 2002
  • Laatst online: 07-06 19:26
Op mijn site loste ik het op door deze regel

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

In tegenstelling tot wat eerder genoemd wordt werkte het juist wel met iso-8859-1, en niet als deze regel ontbrak...

/dev/null


Acties:
  • 0 Henk 'm!

  • Remus
  • Registratie: Juli 2000
  • Laatst online: 15-08-2021
vriesdude schreef op donderdag 06 januari 2005 @ 22:36:
Op mijn site loste ik het op door deze regel

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

In tegenstelling tot wat eerder genoemd wordt werkte het juist wel met iso-8859-1, en niet als deze regel ontbrak...
Het euro-teken is geen onderdeel van ISO-8859-1, dus als dat je problemen oplost is dat eigenlijk een beetje vreemd. Op mijn werk hoef je alleen maar character-encoding te noemen en sommige programmeurs zitten al in de boom. De pagina's in onze webapplicatie kregen eerst de -1 encoding mee, maar dan werkt de Euro dus niet (tenzij je je browser instelt om creatief om te gaan met encodings). Met het meegeven van de -15 encoding (waarin de Euro dus wel gedefinieerd is) was dat probleem opgelost (maar werd weer een ander blik aan problemen opengetrokken omdat sommige klanten characters gebruikten die uit -1 waren 'omgeruild' voor andere characters).

[ Voor 4% gewijzigd door Remus op 06-01-2005 22:44 ]


Acties:
  • 0 Henk 'm!

  • vriesdude
  • Registratie: Februari 2002
  • Laatst online: 07-06 19:26
Remus schreef op donderdag 06 januari 2005 @ 22:43:
[...]

Het euro-teken is geen onderdeel van ISO-8859-1, dus als dat je problemen oplost is dat eigenlijk een beetje vreemd. Op mijn werk hoef je alleen maar character-encoding te noemen en ze zitten al in de boom. De pagina's in onze webapplicatie kregen eerst de -1 encoding mee, maar dan werkt de Euro dus niet (tenzij je je browser instelt om creatief om te gaan met encodings). Met het meegeven van de -15 encoding (waarin de Euro dus wel gedefinieerd is) was dat probleem opgelost (maar werd weer een ander blik aan problemen opengetrokken omdat sommige klanten characters gebruikten die uit -1 waren 'omgeruild' voor andere characters).
hmm, dan ga ik voor de zekerheid maar even mijn iso codering veranderen op me site !!

edit: Net de ISO omgezet van -1 naar -15, maar toen werden alle euro's vraagtekens... Voor mij werkt ISO -1 dus goed, zowel IE 6 als FF 1 (voor de desbetreffende site die signature)

[ Voor 15% gewijzigd door vriesdude op 06-01-2005 22:57 ]

/dev/null


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 07-06 21:37
bij mij werkt geen van beide...

Chookity-pok


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 07-06 21:37
ik zie nu ook dat hij de comma in de lucht ' ook weergeeft als een ?
het zit dus zeker weten in de apache instellingen?

Chookity-pok


Acties:
  • 0 Henk 'm!

  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

Had ik laatst zelf een topic over, misschien staat er nog wat in: [rml][ CHARSET] Uitleg standaard karaktersets[/rml]

Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 07-06 21:37
In de volgende "hiërarchie" kan 2 wel 1 overriden, maar 3 kan 2 (en 1) niet overriden. Conclusie: het heeft (in deze context) pas zin om 3 te gebruiken als 1 niet geset is (en 3 is gelijk aan 2 of 2 is ook niet geset).

1. Apache directive AddDefaultCharset
2. HTTP Content-type header
3. meta-data
Is dit de reden waarom het niet werkt als ik de meta tag in mijn php pagina zet?

Chookity-pok


Acties:
  • 0 Henk 'm!

  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

Ja :)
Pagina: 1