[php]Weergave é en dergelijke niet goed.

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

Acties:
  • 0 Henk 'm!

  • ijsthijs
  • Registratie: Juni 2003
  • Laatst online: 18-09 16:09
Hello,

ik heb een probleempje met de weergave van de letters "é" en dergelijke, in al mijn scripts die ik draai worden deze letters vervangen door een 頢 teken.

Dit gebeurt ook in mijn phpbb forum, die maakt natuurlijk al gebruik van htmlspecialchars(); maar geeft niet de oplossing.

Weet iemand hoe dit op te lossen ? De search kon me niet helpen.

eenechtezzper.nl


Acties:
  • 0 Henk 'm!

  • raoulduke
  • Registratie: Oktober 2003
  • Niet online

raoulduke

Get in!

En als je escape codes gebruikt zoals (hee, GoT werkt hier ook mee):
code:
1
2
è
é

[ Voor 48% gewijzigd door raoulduke op 29-04-2004 13:14 ]

Remember, if you have any trouble you can always send a telegram to the Right People.


Acties:
  • 0 Henk 'm!

  • André
  • Registratie: Maart 2002
  • Laatst online: 12-09 14:32

André

Analytics dude

Ik heb hetzelfde probleem, alleen maakt hij van mijn é een soort AO met wat troep erboven. Ik post een é en met htmlspecialchars sla ik hem op in een textbestand. Als ik hem daarna opvraag zie ik of een vraagteken staan of een AO achtig iets of een é. :?

Acties:
  • 0 Henk 'm!

Verwijderd

Kan ook liggen aan je Mysql database (tenminste ga ervan uit dat je die gebruikt) als je een wat oudere verzie hebt of niet de juiste character set wil die daar ook nog wel eens over struikelen.

Acties:
  • 0 Henk 'm!

  • ijsthijs
  • Registratie: Juni 2003
  • Laatst online: 18-09 16:09
Het volgende script geeft het daaropvolgende resultaat:
<?php
echo("
&ea cute; <br>
é <br>
".htmlspecialchars("é")."<br>
");
?>

Resultaat in de bron:

é <br>
é <br>
é<br>

Resultaat op het scherm:

é
頼br> 鼢r>

[ Voor 24% gewijzigd door ijsthijs op 29-04-2004 13:21 ]

eenechtezzper.nl


Acties:
  • 0 Henk 'm!

  • mullah
  • Registratie: April 2000
  • Laatst online: 19-07 14:56
heb je het doctype en de character set van je html document al gecontroleerd? als je namelijk een japanse karakterset gebruikt kan ie natuurlijk geen è aan, en als je daar iets niet gedefinieerd hebt kan het zijn dat je browser gaat gokken.

(en in firefox 0.9 zit dachtik een bugje wat daarmee te maken had)

Acties:
  • 0 Henk 'm!

  • ijsthijs
  • Registratie: Juni 2003
  • Laatst online: 18-09 16:09
Euhm het is vrij raar,

want op mijn ene server werkt precies hetzelfde script wél goed en op de andere niet. De output in de bron is precies hetzelfde, maar op het scherm verschillend.

Euhm, ik heb geen doctype en character set ingesteld. Het scriptje hierboven is ook precies wat verstuurd word. Wat zou ik eventueel moeten instellen ?

[ Voor 30% gewijzigd door ijsthijs op 29-04-2004 13:38 ]

eenechtezzper.nl


Acties:
  • 0 Henk 'm!

  • mullah
  • Registratie: April 2000
  • Laatst online: 19-07 14:56
Dit soort dingen, als je echt gaat freaken...
code:
1
2
3
4
5
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15" />


Maar dit lijkt me redelijker :)
code:
1
2
3
4
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="nl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15">
want op mijn ene server werkt precies hetzelfde script wél goed en op de andere niet. De output in de bron is precies hetzelfde, maar op het scherm verschillend.
Je ene server heeft dan vermoedelijk een andere standaard instelling voor het Content-Type dan de andere.. vandaar dat je het moet specificeren in je html source zodat de browser weet welke die moet gebruiken.

[ Voor 38% gewijzigd door mullah op 29-04-2004 13:47 ]


Acties:
  • 0 Henk 'm!

  • ijsthijs
  • Registratie: Juni 2003
  • Laatst online: 18-09 16:09
Met die headers er in nog steeds hetzelfde probleem:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<Head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15"></head>
<body>
<?php
echo(" 
&eacute; <br>
é <br>
".htmlspecialchars("é")."<br>a
");
?>
</body>
</html>


Geeft in de bron:
code:
1
2
3
4
5
6
7
8
9
10
11
12
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<Head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15"></head>
<body>
 
&eacute; <br>
é <br>
é<br>
</body>
</html>


Geeft op het scherm:

é
頼br> 鼢r>

eenechtezzper.nl


Acties:
  • 0 Henk 'm!

  • mullah
  • Registratie: April 2000
  • Laatst online: 19-07 14:56
dan ben je nu bezig met een probleem in je browser...

Heb je in je browser een standaard taal ingesteld of een standaard characterset die je gebruikt... heeft je operating system de character set geïnstalleerd?

Je kunt ook nog proberen om ipv. "charset=ISO-8859-15" een andere charset bijvoorbeeld "charset=ISO-8859-1" of "charset=UTF-8" te gebruiken.. deze missen alleen het € teken (Als je &euro; gebruikt werkt het misschien wel)

Acties:
  • 0 Henk 'm!

  • ijsthijs
  • Registratie: Juni 2003
  • Laatst online: 18-09 16:09
Euhm, ik denk niet dat het ligt aan mijn browser. Heb het namelijk op geen enkel andere site.

Probeert u het eens? >> http://www.hanglow.nl/test/

btw, phpinfo geeft het volgende:

iconv
iconv support enabled
iconv implementation glibc
iconv library version 2.3.2

Directive Local Value Master Value
iconv.input_encoding ISO-8859-1 ISO-8859-1
iconv.internal_encoding ISO-8859-1 ISO-8859-1
iconv.output_encoding ISO-8859-1 ISO-8859-1

Misschien heeft dat er wat mee te maken ?

[ Voor 56% gewijzigd door ijsthijs op 29-04-2004 14:01 ]

eenechtezzper.nl


Acties:
  • 0 Henk 'm!

  • André
  • Registratie: Maart 2002
  • Laatst online: 12-09 14:32

André

Analytics dude

Ik heb het ook op die pagina, maar als ik bij "view -> encoding" van unicode naar european ga is het wel goed.

Acties:
  • 0 Henk 'm!

  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 20-08 09:22

Clay

cookie erbij?

Het wordt een ? omdat het in die charset niet bekend is. De standaard charmap heeft 256 tekens, omdat 1 teken uit 1 byte bestaat, en met 8 bits zijn 256 combinaties te maken (doh). Als een teken niet in die charmap past heb je dus een andere nodig; bijvoorbeeld utf-8. Daarmee worden sommige tekens met 2 bytes (!!!) opgeslagen, maar het moet dan ook als utf-8 geserveerd worden, want anders worden die 2 bytes als 2 tekens herkend, en krijg je die AO met wat troep tekens.

Dat is ongeveer het verhaal, want ik weet alleen hoe ik ermee moet werken zodat het goed gaat :P niet hoe de vork precies in de steel zit. Maar het blijft dom, want imo hoort de é gewoon in de standaard charmap, en zou dat gewoon moeten werken...
Probeert u het eens? >> http://www.hanglow.nl/test/
é ? en ?

Je server geeft trouwens UTF-8 door, maar je stelt zelf iso-bla-15 in. Als ik in moz/fire de charset overrule naar iso-bla-15 krijg ik voor die ?'s wel é Dus dat conflicteert gewoon.

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


Acties:
  • 0 Henk 'm!

  • ijsthijs
  • Registratie: Juni 2003
  • Laatst online: 18-09 16:09
Euhm, maar hoe los ik het nu op ? Ik kan straks niet van al mijn bezoekers verwachten dat ze eventjes de codering veranderen.

eenechtezzper.nl


Acties:
  • 0 Henk 'm!

  • André
  • Registratie: Maart 2002
  • Laatst online: 12-09 14:32

André

Analytics dude

Clay schreef op 29 april 2004 @ 14:03:
Dat is ongeveer het verhaal, want ik weet alleen hoe ik ermee moet werken zodat het goed gaat :P niet hoe de vork precies in de steel zit. Maar het blijft dom, want imo hoort de é gewoon in de standaard charmap, en zou dat gewoon moeten werken...
Dat is ook ongeveer zoals ik het weet, maar wat is een goede oplossing?

Acties:
  • 0 Henk 'm!

  • mullah
  • Registratie: April 2000
  • Laatst online: 19-07 14:56
in plaats van htmlspecialchars() kun je ook htmlentities() in php gebruiken .. die converteert van é namelijk een &#143; enz.
htmlspecialchars doet dacht ik alleen de & en de " karakters

Acties:
  • 0 Henk 'm!

  • ijsthijs
  • Registratie: Juni 2003
  • Laatst online: 18-09 16:09
mullah schreef op 29 april 2004 @ 14:13:
in plaats van htmlspecialchars() kun je ook htmlentities() in php gebruiken .. die converteert van é namelijk een &#143; enz.
htmlspecialchars doet dacht ik alleen de & en de " karakters
Euhm dat klopt, htmlspecialchars was inderdaad de verkeerde functie om te encoden. Maar het wordt een beetje erg veel werk als ik overal htmlentities op moet los laten.

eenechtezzper.nl


Acties:
  • 0 Henk 'm!

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Effe gezocht op google:
http://tamillinux.org/tam...gename=SettingContentType

Je werkt met xhtml, dan moet je wel netjes alle tags afsluiten. Dus <br> -> <br/>

Acties:
  • 0 Henk 'm!

  • mullah
  • Registratie: April 2000
  • Laatst online: 19-07 14:56
Je server geeft op de een of andere manier knalhard een UTF-8 document door, ook al zeg je in je document zelf dat het wat anders moet zijn

als je nu bovenaan je pagina output met de header() functie van php de charset probeert te overriden werkt het misschien beter
code:
1
header('Content-type: text/html; charset=ISO-8859-15');

Acties:
  • 0 Henk 'm!

  • ijsthijs
  • Registratie: Juni 2003
  • Laatst online: 18-09 16:09
Hey mullah,

het via php versturen van de headers gaat perfect.
Gelukkig include ik alle content en is dit dus een perfecte oplossing.

Thank you

eenechtezzper.nl


Acties:
  • 0 Henk 'm!

  • mullah
  • Registratie: April 2000
  • Laatst online: 19-07 14:56
yw
Pagina: 1