Archief - PHP/JS: probleem met frans

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

SMa

Legacy Member
Al de speciale franse karakters [ç, é, à, ...] worden fout weergegeven door php.
Weet iemand hoe ik dit kan oplossen?

In de database (mysql) staan ze juist. Het is pas bij het weergeven op de pagina dat het foutloopt.
De default_charset is "UTF-8", net zoals in de database.

:edit:
blijkbaar werkt "ë" ook niet :s

Incinnerator

Legacy Member
utf8_encode of utf8_decode functie gebruiken op den tekst da je wilt weergeven
en dan in uwen head tag : <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

SMa

Legacy Member
Dan vallen die letters gewoon weg :s

Ik vind het maar vreemd, ik denk niet dat ik hier ooit al eens problemen mee gehad heb.

Disco_Dave

Legacy Member
doe u document eens open met notepad++ (freeware) en kijk eens rechts onderaan wat de charset van u document is (ANSI is dus verkeerd).

Uw document moet ook zijn opgeslagen als UTF-8, enkel uw header correct zetten helpt niet veel. Ook moet je opletten als je files include in je main php pagina, dat de include files ook utf-8 files zijn.

Als al je files utf-8 zijn, moet je dus ook niet gaan encoden-decoden.

Edit:
Andere mogelijke oorzaak is dat je datasource (mysql, flat file...) niet utf-8 is. Het kan best zijn dat je tekens correct worden weergegeven maar dat wil niet zeggen dat je gegevens die in mysql zitten dan daadwerkelijk utf-8 zijn.

Als al je data een ander formaat heeft dat moet je dat formaat ook correct tonen. iets anders -> utf-8 is natuurlijk onleesbaar.

Is dit het geval dan ga je eerst moeten te weten komen welk formaat je data is en vervolgens je view pagina in dat formaat ook tonen

JensDT42

Legacy Member
Probeer eens:

PHP:
header("Content-Type: text/html; charset=UTF-8");

En voor het uitvoeren van een query (maar hoeft natuurlijk slechts 1x per connectie) deze query uitvoeren:
PHP:
mysql_query("SET NAMES 'utf8';");

SMa

Legacy Member
Disco_Dave zei:
doe u document eens open met notepad++ (freeware) en kijk eens rechts onderaan wat de charset van u document is (ANSI is dus verkeerd).
Welk document bedoel je precies?
Toch niet al mijn php-bestanden?

JensDT42 zei:
Probeer eens:

PHP:
header("Content-Type: text/html; charset=UTF-8");

En voor het uitvoeren van een query (maar hoeft natuurlijk slechts 1x per connectie) deze query uitvoeren:
PHP:
mysql_query("SET NAMES 'utf8';");
Nu zijn al die tekens veranderd in vraagtekens, ipv rare onleesbare tekens.

SMa

Legacy Member
getest met "départ":
origineel => d,part
htmlentities => dâ&#65533;&#65533;part :p
htmlspecialchars => d&#8218;part

KoenDK

Legacy Member
is dit puur html en php of zit er een CMS achter? daar kan je trouwens ook je encoding instellen

ps: probeer eens
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

SMa

Legacy Member
Ik heb een oplossing gevonden ;)
è => &egrave;
é => &eacute;
...

ça marche bien
thx iedereen


@On3Liner
Hoe bedoel je? Via "insert..."

@KoenDK
Ik gebruik momenteel
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
en dan krijg ik d,coratrice ipv décoratrice.
Met ISO-8859-1 krijg ik dâ&#8364;&#353;coratrice :p

0n3Liner

Legacy Member
da's dus geen oplossing he :p insert in phpmyadmin of via je code? staat je PHP file ook in UTF8?

Lord Kveldulv

Legacy Member
Als ge controle hebt over uw httpd.conf dan dit uitzetten:

# Specify a default charset for all content served; this enables
# interpretation of all content as UTF-8 by default. To use the
# default browser choice (ISO-8859-1), or to allow the META tags
# in HTML content to override this choice, comment out this
# directive:
#
#AddDefaultCharset UTF-8

By default staat da aan. Heb er vorige week bij ne nieuwe server ook mee zitten sukkelen.

SMa

Legacy Member
0n3Liner zei:
da's dus geen oplossing he :p insert in phpmyadmin of via je code? staat je PHP file ook in UTF8?
idd geen "oplossing", maar toch... :p (de tekst is vrij statisch, dus zo'n probleem is het niet)
ik insert via beide, php staat ook in UTF8

Ik weet niet of ik controle heb over de httpd.conf,
ik ben momenteel nog bezig op de localhost en zal pas overmorgen alles op de server plaatsen.

0n3Liner

Legacy Member
inserten via phpmyadmin = problemen. hoewel phpmyadmin claimt in utf8 bezig te zijn mag je dit vergeten :)

KoenDK

Legacy Member
SMa zei:
Ik heb een oplossing gevonden ;)
è => &egrave;
é => &eacute;
...

dat is inderdaad de correcte manier, maar dit is niet altijd een oplossing
bijvoorbeeld als je andere mensen content laat invullen... als die steeds die rare code moeten ingeven, die komen zot :lol:

Tyfius

Legacy Member
Daarom heeft men functies ontwikkeld die deze "rare" tekens omzetten naar het correcte HTML equivalent alvorens de data in een database op te slaan.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan