Ik krijg via een api een tekst binnen die volgens mij foutief gecodeerd is.
VB het unicode karakter 'thumbs up' wordt: Ø=ÜM
en België ! wordt: ¡B¡e¡l¡g¡i¡ë¡ ¡!
Iemand enig idee hoe ik hiervan terug UTF-8 codering kan maken. Heb al allerlei combinatie geprobeerd met iconv in php, maar lukt me niet...
alvast hartelijk dank voor de hulp.
@r dc zorg dat je zelf de data ook presenteert/opslaat als UTF-8, oftewel, zorg dat je een meta tag en/of PHP-header gebruikt, maar ook dat je een character encoding instelt als je je data wegschrijft naar je database.
EDIT: en als je database tabellen latin1 zijn, dan worden speciale karakters gedowngrade naar ???? omdat latin1 deze karakters niet kent. Mogelijk moet je ook utf8mb4 gebruiken om alle multibyte karakters te laten passen in je database, utf8 (de encoding in MySQL) bestrijkt niet dezelfde set als UTF-8.
@Thomas Dit is geen database probleem. De foute encoding is extern en buiten bereik. Ik kan deze niet aanpassen. Ik wil ze op mijn platform wel ongedaan maken.
Heel concreet heb ik dus een string in php die volgende letters bevat: Ø=ÜM
En hiervan wil ik het unicode karakter 'thumbsup' maken (in UTF-8: F0 9F 91 8D)
@Thomas Dit is geen database probleem. De foute encoding is extern en buiten bereik. Ik kan deze niet aanpassen. Ik wil ze op mijn platform wel ongedaan maken.
Dit lijkt mij iets wat mogelijk aan die kant opgelost moet worden. Ik zie ook niet hoe je van jouw input naar een thumbs-up emoji zou moeten gaan. Mogelijk is er iets lost in translation in welk geval je simpelweg niet van A naar B kunt komen...
... aan de andere kant: misschien ligt dit ook niet aan de API zelf maar aan een station ervoor? Misschien wordt er al corrupte data gevoerd aan de API? Ik bedoel, is de bron van de data die voor problemen zorgt elke keer dezelfde? Of zijn er meerdere bronnen die via die API werken en levert dat allemaal corrupte data op? In het laatste geval is het misschien waarschijnlijker dat de API roet in het eten gooit, maar anders? Mogelijk valt er niets op te lossen omdat het probleem niet in de API zelf zit?
Kun je dit mogelijk zelf testen? Je geeft ook bar weinig informatie over de API, wat het voor ons redelijk onmogelijk maakt om ons een voorstelling te maken van hoe dat ding werkt. Zijn er misschien andere gebruikers/API-afnemers die dezelfde problemen hebben? Heeft dat ding een FAQ/support forum et cetera.