php/mysql: é á etc juist weergeven

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Rico van P

Rico van P

29/12/2012 17:58:20
Quote Anchor link
Hallo

Ik ben met een stuk website bezig binnen een al bestaande wordpress website.
Ik loop tegen het probleem aan dat de tekst "pokémon" uit de database getoond wordt als: pok?mon.

Ik heb zelf al een aantal dingen geprobeerd, maar dit was meer loos proberen dan echt een goede idee hebben wat ik aan het doen was.

Iemand een idee?

Als je meer info nodig hebt over bepaalde instellingen, vraag maar raak.

Alvast bedankt!

Rico


een aantal van de geprobeerde dingen zonder resultaat:

head aanpassen naar utf-8

htmlspecialchars()

function replace_unicode_escape_sequence($match) {
return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE');
}
$str = preg_replace_callback('/\\\\u([0-9a-f]{4})/i', 'replace_unicode_escape_sequence', $testtabel);

echo $str;

echo '<br/>';
$str2 = iconv('UTF8', 'ASCII//TRANSLIT', $testtabel);

echo $str2;

echo replace_unicode_escape_sequence($testtabel);
 
PHP hulp

PHP hulp

09/01/2025 04:17:53
 
Erwin H

Erwin H

29/12/2012 18:08:32
Quote Anchor link
Vier stappen die je moet hebben:
1) je database collatie goed hebben staan. Als je database nog niet correct is, kan je dat met deze query goed zetten:
ALTER TABLE table_name CONVERT TO character set utf8 collate utf8_general_ci;
(let op dat dit niet altijd meer al bestaande data in je database goed zet).

2) als je verbinding maakt met je database, zorg dan dat die verbinding ook correct is. Voer altijd deze query uit zodra je verbinding hebt gemaakt:
SET names utf8, COLLATION_CONNECTION='utf8_unicode_ci',character set utf8;

3) verzend de juiste header voor je de pagina doorstuurt:
header('Content-type: text/html; charset=utf-8');

4) zet de juiste charset in je html in de meta data:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Dan zou het goed moeten komen... alleen als je nog onjuiste data hebt zitten in je database, dan komt het helaas niet altijd goed. Die zal je dus wel handmatig moeten converteren in sommige gevallen.
Gewijzigd op 29/12/2012 18:09:33 door Erwin H
 
Rico van P

Rico van P

29/12/2012 18:14:08
Quote Anchor link
Ik ga het even proberen, alvast bedankt voor je snelle reactie!

Toevoeging op 29/12/2012 18:31:18:

Heb het allemaal geprobeerd (tegelijktijdig uiteraard) en het werkt nog steeds niet.

Belangrijke informatie die ik net bedacht is dat het op een subdomein van de site wel werkte, met dezelfde database

Op dat subdomein stond een tabel met informatie uit de database waaronder een beschrijving en daar gaat het gewoon goed, copy paste ik die code binnen wordpress (en pas ik het e.e.a aan) dan werkt alles nog behalve dat de é van pokemon een ? is...




Toevoeging op 29/12/2012 18:44:45:

aanvullende gegevens:




Afbeelding
Gewijzigd op 29/12/2012 18:48:18 door Rico van P
 
P-ter AA

P-ter AA

29/12/2012 19:42:25
Quote Anchor link
Direct na het connecten:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
mysql_set_charset("utf8");


Off-topic: Het is herstelt met een t op het eind. Ik herstel, jij herstelt.
Gewijzigd op 29/12/2012 19:44:09 door P-ter AA
 
Rico van P

Rico van P

29/12/2012 22:03:27
Quote Anchor link
Bedankt Maurice dat werkte, TOP!

En wat je zegt over herstelt snap ik niet helemaal, was dat tegen mij?


EDIT

Ooh ik zie nu wat je bedoelt, staat in de database inderdaad.
Database staat barstensvol met zulk soort fouten, niet mijn taak om aan te passen ;)
Gewijzigd op 29/12/2012 22:39:06 door Rico van P
 
Php knipper

php knipper

29/12/2012 22:12:46
Quote Anchor link
had gisteren nog hetzelfde probleem maar dan met "céderic"

bij mij werkt het om bovenaan
header("Content-type: text/html; charset=utf-8");
te zetten.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.