[PHP/MySQL/RSS] Charset problemen laten RSS-feed blokkeren

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • assass
  • Registratie: November 2002
  • Laatst online: 31-07-2024

assass

Salon GoT'er

Topicstarter
Na dagen lang proberen en veel gezoek op GoT, Google, enz. kom ik er echt niet meer uit. Mijn RSS feed blokkeert steeds op basis van de karakter set (volgens mij). Eindelijk wordt nu in elk RSS feedlezer mijn feed www.tomtalk.nl/rss gelezen, maar toch krijg ik alsnog foutmeldingen in de validation: http://validator.w3.org/f...?url=www.tomtalk.nl%2Frss.

Hij loopt vast tegen de speciale characters in mijn teksten zoals ' " é ë etc! Met name aanhalingstekens lijken op dit moment het probleem te zijn.

Heel frustrerend, ik heb al verschillende manieren geprobeerd om bij het uitlezen van m'n MySQL database (RSS wordt door PHP gegenereerd) deze tekens te vervangen, maar het wil niet lukken. Heeft iemand suggesties?

Mijn RSS index.php heeft als kop:

header("Content-type: text/xml; charset=iso-8859-1");

De MySQL database is volgens mij ook iso-8859-1.

Acties:
  • 0 Henk 'm!

  • McKaamos
  • Registratie: Maart 2002
  • Niet online

McKaamos

Master of the Edit-button

Gewoon je speciale tekens encoden?
bijvoorbeeld "©" voor een copyright teken, en zo zijn ze er voor bijna alle speciale tekens.
Uiteraard mag de hexadecimale code van het teken ook, dus "&#01b;" bijvoorbeeld.

Iemand een Tina2 in de aanbieding?


Acties:
  • 0 Henk 'm!

  • assass
  • Registratie: November 2002
  • Laatst online: 31-07-2024

assass

Salon GoT'er

Topicstarter
htmlentities of htmlspecialchars lost nix op

Acties:
  • 0 Henk 'm!

  • doeternietoe
  • Registratie: November 2004
  • Laatst online: 20-09 17:02
XML:
1
<?xml version="1.0" encoding="iso-8859-1" ?>


Staat de http-header toevalling niet op UTF-8?

In dat geval:
PHP:
1
header( "charset=ISO-8859-1" );


Ik zou 'm trouwens zowiezo al eerder op iso-8859-15 zetten, daar zitten weer nieuwere tekens zoals de euro in. Of alles op UTF-8 zetten.

[ Voor 29% gewijzigd door doeternietoe op 29-03-2007 11:06 ]


Acties:
  • 0 Henk 'm!

  • Icelus
  • Registratie: Januari 2004
  • Niet online
Er zitten ongeldige karakters in. Zoals in de tekst: m’n baggy lievelingsbroeken. De ’ is niet gedefinieerd in ISO-8859-1(5).
Gebruik geen entiteiten zoals &euml;, deze zijn ook niet gedefinieerd binnen XML.

[ Voor 8% gewijzigd door Icelus op 29-03-2007 11:43 ]

Developer Accused Of Unreadable Code Refuses To Comment


Acties:
  • 0 Henk 'm!

  • assass
  • Registratie: November 2002
  • Laatst online: 31-07-2024

assass

Salon GoT'er

Topicstarter
dus ik moet ' en " omzetten, maar hoe pak ik dat aan zonder de inhoud van m'n hele db te hoeven aanpassen?

Acties:
  • 0 Henk 'm!

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Als je voor UTF-8 gaat kan je utf8_encode gebruiken

Acties:
  • 0 Henk 'm!

  • McKaamos
  • Registratie: Maart 2002
  • Niet online

McKaamos

Master of the Edit-button

TheRookie schreef op donderdag 29 maart 2007 @ 11:58:
Als je voor UTF-8 gaat kan je utf8_encode gebruiken
Yup, gewoon runtime doen. Inlezen, encoden, outputten.
PHP kent zoveel leuke feats als het daar op aan komt :) Tekstmanipulatie met PHP is opzich hardstikke simpel :)

Iemand een Tina2 in de aanbieding?


Acties:
  • 0 Henk 'm!

  • assass
  • Registratie: November 2002
  • Laatst online: 31-07-2024

assass

Salon GoT'er

Topicstarter
voel me nu wel btje dom, maar ben blij dat ik eindelijk de kans krijg dit aan te stippen, want ik kloot op verschillende en verkeerde manieren al langer op gebied van character encoding :S

bedankt voor alle waardevolle feedback (en sorry dat ik topic title was vergeten)

dit is de validation output na encoden:

http://validator.w3.org/f...?url=www.tomtalk.nl%2Frss

moést wordt moést

etc.

dit probleem heb ik trouwens ook als ik vanaf mn mobiel een tekst invoer, dan krijgen al die é ë e.d. speciale tekens die ik met ALT+XXX invoer rare output

Acties:
  • 0 Henk 'm!

  • Icelus
  • Registratie: Januari 2004
  • Niet online
assass schreef op donderdag 29 maart 2007 @ 12:12:
voel me nu wel btje dom, maar ben blij dat ik eindelijk de kans krijg dit aan te stippen, want ik kloot op verschillende en verkeerde manieren al langer op gebied van character encoding :S

bedankt voor alle waardevolle feedback (en sorry dat ik topic title was vergeten)

dit is de validation output na encoden:

http://validator.w3.org/f...?url=www.tomtalk.nl%2Frss

moést wordt moést

etc.

dit probleem heb ik trouwens ook als ik vanaf mn mobiel een tekst invoer, dan krijgen al die é ë e.d. speciale tekens die ik met ALT+XXX invoer rare output
Een é wordt als twee bytes gecodeerd in UTF-8. In de XML geef je aan dat er ISO-8859-1 gebruikt moet worden. In ISO-8859-1 zijn alle karakters één byte breed. De gecodeerde é (twee bytes in UTF-8) verschijnt dan ook als twee aparte karakters. Je kunt dit oplossen door in de XML aan te geven dat het om UTF-8 gaat.

Waarom gebruik je CDATA voor bijvoorbeeld de descriptor? Om HTML-opmaak te houden?

Developer Accused Of Unreadable Code Refuses To Comment


Acties:
  • 0 Henk 'm!

  • assass
  • Registratie: November 2002
  • Laatst online: 31-07-2024

assass

Salon GoT'er

Topicstarter
dan krijg ik:

Your feed appears to be encoded as "UTF-8", but your server is reporting "iso-8859-1" [help]

en verder dezelfde error,..


als ik vervolgens ook in de php header UTF-8 aangeef met:

header("Content-type: text/xml; charset=UTF-8");

krijg ik weer dezelfde foutmelding als waar ik deze topic mee opende

Acties:
  • 0 Henk 'm!

  • Icelus
  • Registratie: Januari 2004
  • Niet online
assass schreef op donderdag 29 maart 2007 @ 12:18:
dan krijg ik:

Your feed appears to be encoded as "UTF-8", but your server is reporting "iso-8859-1" [help]

en verder dezelfde error,..


als ik vervolgens ook in de php header UTF-8 aangeef met:

header("Content-type: text/xml; charset=UTF-8");

krijg ik weer dezelfde foutmelding als waar ik deze topic mee opende
De karakters (\x91 e.d.) zijn geen geldige karakters. Ze worden o.a. gebruikt door Windows om karakters als “ en ’ een plaats te geven (Win1252 karakterset).

Gebruik i.p.v. de utf8_encode functie deze functie (Icelus in "\[PHP/XML] Enkele quotes coderen met UTF-...") om én UTF-8 te coderen en ongeldige (Win1252 karakters) om te zetten naar UTF-8.

Developer Accused Of Unreadable Code Refuses To Comment


Acties:
  • 0 Henk 'm!

  • assass
  • Registratie: November 2002
  • Laatst online: 31-07-2024

assass

Salon GoT'er

Topicstarter
http://validator.w3.org/f...?url=www.tomtalk.nl%2Frss

merci aan iedereen

omslachtig verhaal imho,..

Acties:
  • 0 Henk 'm!

  • wackmaniac
  • Registratie: Februari 2004
  • Laatst online: 19-09 18:02
Ik heb zelf goede ervaringen met deze functie: http://nl3.php.net/manual/nl/function.htmlentities.php#33530

Read the code, write the code, be the code!

Pagina: 1