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

Odstranění znaku odrážky Unicode

Tolik věcí se zde může pokazit, protože se jedná o databázi, odeslání formuláře a řetězcové literály zdrojového kódu. Předpokládám, že chcete použít UTF-8, protože s jakýmkoli jiným typickým kódováním (CP1252, Latin1) budete mít problém, když budete chtít použít json_ nebo přijmout více než ~200 různých znaků.

První věc, kterou musíte udělat, je odstranit jakýkoli druh kódu konverze atd., který byl napsán s úmyslem pokusit se opravit problémy s kódováním. Například utf8_encode , htmlentitites , *_replace .. To je jedno.

Zdrojové kódování.

$str = "· Close up the server";

Při psaní výše uvedeného musí být zdrojový soubor PHP fyzicky zakódován v UTF-8. Pokud používáte Windows, musíte to udělat nebo nakonfigurovat. UTF-8 se ve Windows neděje magicky.

Formulář se odešle

Když uživatel odešle formulář, obsah bude v jakémkoli kódování, za které jste stránku označili. Můžete to prohlásit takto:

header("Content-Type: text/html; charset=utf-8");

Ale každý může ve skutečnosti odeslat libovolné bajty na váš server, takže před pokračováním byste měli ověřit, zda je vstup v UTF-8. mb_check_encoding je dobrý.

Databáze

Protože v tomto okamžiku vaše data přicházejí jako UTF-8, vaše vstupní řetězce jsou v UTF-8. Toto musíte zadat po připojení k databázi zadáním kódování připojení.

mysql_set_charset("utf8"); //After making the connection, and before any queries
//or $mysqli->set_charset( "utf8");

Díky tomu databáze čte váš vstup v UTF-8 a kóduje jeho výstup v UTF-8. Také byste chtěli nastavit své sloupce/tabulky/databáze na UTF-8.

Unicode escape sekvence \uxxxx nebo \uhhhh\ullll nebo \Uxxxxxxxx nejsou podporovány v PHP.



  1. Připojení Pythonu k databázi MySQL pomocí konektoru MySQL a příkladu PyMySQL

  2. Jak mohu použít datový typ data na serveru SQL?

  3. Zkopírujte data do nové tabulky v MySQL

  4. Použití podřetězců v kritériích MySQL