Meerdere karaktersets converteren naar 1

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dan Me

Dan Me

28/08/2006 10:14:00
Quote Anchor link
Heey Mensen,

Een vraag waar ik op dit moment niet uit kom en waarbij jullie mij misschien kunnen helpen:

Ik ben op dit moment bezig met een grote migratie van gebruikers van het ene platform naar een ander. In principe dezelfde alleen is de structuur totaal anders (een nieuwe versie).
Het probleem ligt bij de oude versie. De kwaliteit en stabiliteit is niet meer zoals hij geweest was (daarom is er een nieuwe versie ontwikkeld). Een van de problemen is dat ik destijds geen rekening heb gehouden met karaktersets. Alles wat de gebruiker invoerde werd gewoon direct in de database (MYSQL) opgeslagen.

In de nieuwe versie doe ik dit wel. Bij elke POST en GET wordt deze array/string door een functie gehaald waarbij alle special characters omgezet worden middels de volgende regel code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$data
= htmlentities ($data, ENT_QUOTES);
?>


en als header voor mijn html pagina's gebruik ik het volgende:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">"
;
?>


Dit werkt allemaal heel mooi en in mijn database staat alles opgeslagen als:

&lt;span style=\&quot;font-weight: bold;\&quot;&gt; etc..

Teksten kan ik nu gewoon weergeven en eventuele HTML code geef ik weer met de volgende regel. Zodat dit weer als HTML gezien wordt.:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
html_entity_decode($value, ENT_QUOTES, "win-1251");
?>


Alleen nu zit ik dus met die migratie. In de oude database zit dus een hele boel rommel in welke ik moet omzetten zodat het nieuwe systeem dit goed interpreteert. Soms staan bijvoorbeeld bullits als echte bullits in de database en soms als special character met een &-teken.

Ik heb vervolgens wat dingen geprobeerd waar ik nog niet uit kom. Als ik bijvoorbeeld de volgende string wil weergeven.

ë | &#8226; 1 < text

Dan krijg ik het niet voor me kaar om elke karakter op de juiste manier om te zetten. De ene keer wordt &#8226; goed gepakt en de andere keer <..

Iemand misschien een idee waar ik naar kan kijken?
Gewijzigd op 01/01/1970 01:00:00 door Dan Me
 
Er zijn nog geen reacties op dit bericht.



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.