Meerdere karaktersets converteren naar 1
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:
en als header voor mijn html pagina's gebruik ik het volgende:
Code (php)
1
2
3
4
5
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\">";
?>
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:
<span style=\"font-weight: bold;\"> 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.:
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.
ë | • 1 < text
Dan krijg ik het niet voor me kaar om elke karakter op de juiste manier om te zetten. De ene keer wordt • 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.