Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[HTML/PHP] Charset wordt niet goed ingesteld

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

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
Ik heb een site met verschillende subsites die een eigen template hebben. Nu heb ik zo'n subsite toegevoegd en dus een template gekopieerd van een andere subsite (de situatie is nu identiek), maar hij wil speciale tekens gewoon niet goed op het scherm zetten.
Een ® komt eruit te zien als ® en apostrofe tekens werken ook voor geen meter. Ik heb al de hele tijd zitten kijken waar het aan ligt, maar kan geen enkele oplossing vinden.

De content wordt geinclude door PHP en in de PHP-bestanden staan de letters uiteraard goed, maar in de source van het geparste document niet, terwijl dit bij de andere subsite wel werkt.

Ik gebruik nu charset=iso-8859-15 maar heb al elke andere gebruikt, maar het maakt geen drol uit.

Iemand tips?

Engineering is like Tetris. Succes disappears and errors accumulate.


  • dB90
  • Registratie: Oktober 2004
  • Laatst online: 04-10 00:10
Misschien ASCII Characters gebruiken?

Webberry Webdevelopment


  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
Ja, dat is natuurlijk een logische oplossing, maar ik snap niet dat het bij de ene pagina wel werkt en bij de andere niet.

Engineering is like Tetris. Succes disappears and errors accumulate.


  • MueR
  • Registratie: Januari 2004
  • Laatst online: 12:00

MueR

Admin Devschuur® & Discord

is niet lief

Er gewoon netjes html entities van maken, dan weet een browser ook wat ie er mee moet. Dus geen ®, maar & reg; (zonder spatie)

[ Voor 7% gewijzigd door MueR op 08-08-2007 11:13 ]

Anyone who gets in between me and my morning coffee should be insecure.


  • Cadezo
  • Registratie: Februari 2006
  • Niet online
Kan je de hele site niet als karaktercodering UTF-8 meegeven? Als je included content gecodeerd in UTF-8 en je de website in Latin-9 zou dat misschien voor problemen kunnen zorgen. Dat heb je al geprobeerd...
Ik neem aan dat je die charset meegeeft in een meta-element? Probeer het eens serverside (bv. PHP), omdat een HTTP-header voorrang krijgt op een meta-element.

Nog twee handige links (Webrichtlijnen van de overheid):
Richtlijnen voor het aangeven van de karakterset

en een concreet voorbeeld/toepassing:
Methodes voor het aangeven van de karakterset

[ Voor 3% gewijzigd door Cadezo op 08-08-2007 11:24 ]


Verwijderd

De content die je invoegt, lijkt me UTF-8 encoded.

UTF-8 gebruikt voor het "Registered Trade Mark Sign" twee bytes, terwijl ISO-8859-1 en ISO-8859-15 er maar een gebruiken (zie: http://www.fileformat.info/info/unicode/char/00ae/index.htm).

Omdat je de content verzendt als ISO-8859-15, behandelt de browser - vokomen terecht - de twee bytes als twee afzonderlijke karakters binnen ISO-8859-15. In dit geval de karakters op de code points 194 en 174 in ISO-8859-15.

PHP kent overigens een functie die UTF-8 omzet naar ISO-8859-1 (zie: http://nl3.php.net/utf8-decode).

  • mithras
  • Registratie: Maart 2003
  • Niet online
Je moet een aantal keer je charset goed zetten. Je php content moet uiteraard goed zitten (kan je met bovenstaande functies oplossen) en ik zie dat je dus in je html head ook een charset meegeeft, waarschijnlijk met
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">

Echter wordt de character set van de browser overschreven als de webserver iets anders aangeeft. Je zal dus die óók zeker moeten stellen. Bij apache plaats je dan een .htaccess met de volgende regel:
AddDefaultCharset iso-8859-15


offtopic:
En gebruik inderdaad eerst eens de juiste html entities, want dat helpt ook een heleboel ;)

[ Voor 8% gewijzigd door mithras op 08-08-2007 12:56 ]

Pagina: 1