/ / Problém s enkódovaním reťazca PHP - objavujú sa ďalšie znaky [duplikát] - php, html, utf-8, kódovanie znakov

PHP reťazec enocding vydanie - Extra znakov objaví [duplicitné] - php, html, utf-8, kódovanie znakov

Možné duplicitné:
Ako opraviť dvakrát kódované znaky UTF8 (v tabuľke utf-8)

Vidím tu ďalšie znaky ako â, ktoré sa zobrazujú kvôli problémom s kódovaním, ako som tu zistil - Problémy s kódovaním HTML - namiesto znaku „“ sa zobrazuje znak „“

Rozumiem, že ak v prehliadači nastavím metakódovanie na utf-8, nebude to mať na nič vplyv, ale musím tieto ďalšie znaky z databázy odstrániť na iné účely.

Napr. :

Text: ↑ by sa malo stať Text: ↑

Ale ak to spustím cez utf8_decode, dá mi to Text: �??

Pri každom ďalšom výskyte znaku â sa konvertuje správne na prázdne miesto. Akákoľvek pomoc bude ocenená.

odpovede:

1 pre odpoveď č. 1

Vo svojej otázke ste neposkytli veľa informácií, ale podľa vzorky, ktorú ste poskytli:

↑ (has been imported as) ↑

Zdá sa, že ste ho už uložili ako utf-8 do exportného súboru, ale pri importovaní ste povedali, že súbor bude kódovaný Windows-1252. Potom to bolo druhýkrát prekódované do utf-8.

↑                                 UTF8: xE2x86x91    UPWARDS ARROW (U+2191)

â  - Windows 1252     xE2 226    UTF8: xC3xA2        LATIN SMALL LETTER A WITH CIRCUMFLEX (U+00E2)
†  - Windows 1252     x86 134    UTF8: xE2x80xA0    DAGGER (U+2020)
‘  - Windows 1252     x91 145    UTF8: xE2x80x98    LEFT SINGLE QUOTATION MARK (U+2018)

V MySQL názov servera Windows 1252 znaková sada je latin1 (cp1252 západoeurópsky, zdokumentované konkrétne rozdiely), celý zoznam nájdete na Sady znakov a porovnávanie, ktoré podporuje MySQL.

Preto je riešenie v súvisiace otázky a odpovede.