/ / Проблема еноцірованія рядка PHP - з’являються зайві символи [дублікат] - php, html, utf-8, кодування символів

PHP рядок enocding питання - додаткові символи, що з'являються [дублікат] - php, html, utf-8, символьне кодування

Можливі дублікати:
Як виправити подвійно закодовані символи UTF8 (у таблиці utf-8)

Я бачу зайві символи, такі як â, що відображаються через проблеми з кодуванням, як я дізнався тут - Проблеми з кодуванням HTML - символ "Â" відображається замість ""

Я розумію, що якщо я встановлю мета-кодування браузера на utf-8, це ні на що не вплине, але мені потрібно вилучити ці зайві символи з бази даних для інших цілей.

Наприклад, :

Text: ↑ має стати Text: ↑

Але якщо я запустив його через utf8_decode, це дасть мені Text: �??

Для кожного іншого входження символу â він належним чином перетворюється на пробіл. Будь-яка допомога буде вдячна.

Відповіді:

1 для відповіді № 1

Ви не поділилися великою кількістю інформації у своєму питанні, але відповідно до наведеної зразки:

↑ (has been imported as) ↑

Схоже, ви вже зберігали його як utf-8 у файлі експорту, але під час імпорту ви сказали, що файл буде кодований Windows-1252. Потім він був перекодований вдруге у 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)

У MySQL ім'я файлу Windows 1252 набір символів latin1 (cp1252 західноєвропейська, конкретні відмінності задокументовані), повний список див Набори символів та зіставлення, які підтримує MySQL.

Ось чому рішення в відповідні запитання та відповіді.