sql >> Databáze >  >> RDS >> Mysql

Latin-1 / UTF-8 kódování php

Váš HTML výstup musí být v jediném kódování, to nelze nijak obejít. To znamená, že obsah v různých kódováních je třeba nejprve převést do vašeho kódování HTML. I když to lze udělat pomocí iconv nebo mb_convert_encoding , musíte vyřešit dva problémy:

  1. Musíte znát (nebo odhadnout) aktuální kódování obsahu
  2. Musíte to provést všude ručně

Teoretickým řešením by například bylo vybrat UTF-8 jako kódování HTML a pak to udělat pro všechny řetězce, které chcete vypsat:

$string = '...'; // from the database

// If it's not already UTF-8, convert to it
if (mb_detect_encoding($string, 'utf-8', true) === false) {
    $string = mb_convert_encoding($string, 'utf-8', 'iso-8859-1');
}

echo $string;

Výše uvedený kód předpokládá, že obsah mimo UTF-8 je zakódován v latin-1, což je podle vaší otázky rozumné.



  1. Připravený příkaz Mysqli (prevence vkládání SQL)

  2. Nelegální mix porovnávání Chyba MySQL

  3. Jak je možné, že SQL dotaz a ActiveRecord.find_by_sql vracejí odlišné výsledky?

  4. Jak funguje LOAD_FILE() v MariaDB