sql >> Database >  >> RDS >> Mysql

Unicode opsommingsteken verwijderen

Er kunnen hier zoveel dingen mis gaan, omdat database, formulierinzendingen en letterlijke broncodetekenreeksen er allemaal bij betrokken zijn. Ik neem aan dat je UTF-8 wilt gebruiken, want met elke andere typische codering (CP1252, Latin1) wordt je genaaid als je json_ wilt gebruiken of accepteer meer dan ~200 verschillende tekens.

Het eerste wat u moet doen is verwijderen elke vorm van conversie enz. code die is geschreven met de bedoeling om coderingsproblemen op te lossen. Zoals utf8_encode , htmlentitites , *_replace .. wat dan ook.

Broncodering.

$str = "· Close up the server";

Bij het schrijven van het bovenstaande moet het PHP-bronbestand fysiek worden gecodeerd in UTF-8. Als u Windows gebruikt, moet u dit expliciet doen of configureren. UTF-8 gebeurt niet op magische wijze op Windows.

Formulier wordt verzonden

Wanneer de gebruiker een formulier indient, bevindt de payload zich in de codering die u voor de pagina hebt opgegeven. Je kunt het als volgt declareren:

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

Maar iedereen kan willekeurige bytes naar uw server verzenden, dus u moet controleren of de invoer in UTF-8 is voordat u verder gaat. mb_check_encoding is goed.

Database

Aangezien uw gegevens op dit moment binnenkomen als UTF-8, bevinden uw invoerreeksen zich in UTF-8. U moet dit specificeren nadat u verbinding heeft gemaakt met de database, door een verbindingscodering op te geven.

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

Hierdoor leest de database uw invoer in UTF-8 en codeert de uitvoer in UTF-8. Je zou ook je kolommen/tabellen/databases op UTF-8 willen zetten.

Unicode-escape-reeksen \uxxxx of \uhhhh\ullll of \Uxxxxxxxx worden niet ondersteund in PHP.



  1. Hiërarchische gegevens in MySql

  2. Drop MySQL-databases die overeenkomen met een wildcard?

  3. Hoe kan ik het SQL-uitvoeringsplan in Oracle zien?

  4. Supersnel de opdrachtregel van de mysql-database importeren