sql >> Database >  >> RDS >> Mysql

Speciale tekens opslaan in MySQL-database

@Pranav Hosangadi (bedankt) bestrijkt drie gebieden om te controleren op consistentie van codering. De volgende oplossing voegt daar nog aan toe. Het kan ook de moeite waard zijn om (een variatie op) @Soaice Mircea's antwoord (ook bedankt) te overwegen voor sommige scenario's waarbij dit antwoord het probleem niet oplost, hoewel dit niet nodig was toen ik in staat was om te reproduceren en een oplossing voor uw probleem te vinden . @Pranav's denkwijze lijkt succesvol te zijn voor dit probleem, aangezien het gaat om consistentie van het overal gebruiken van één tekenset in plaats van een bepaalde.

vijf dingen om te doen:

  1. zorg ervoor dat database-tekenset en tabellen overal dezelfde tekenset gebruiken, inspecteer dit bijvoorbeeld in phpmyadmin, noteer en deze tekenset voor gebruik hieronder

  2. gebruik de functie php header() met database-tekenset, bijvoorbeeld:

    header('Content-Type: text/html; charset=latin1_swedish_ci');
  3. voeg metatag in html-header in, bijvoorbeeld:

    <meta http-equiv="content-type"
    content="text/html;charset=latin1_swedish_ci">
  4. voeg charset-accept toe in formuliertag

    <form action=\"testsubmit.php\" method=\"post\" accept-charset=\"latin1_swedish_ci\">
  5. tekenset van mysql-verbinding instellen, bijvoorbeeld:

    $con = mysql_connect("localhost","test","test");      
    mysql_set_charset ( "latin1_swedish_ci", $con );
    


  1. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:communicatieverbinding mislukt

  2. Overgecompliceerde Oracle jdbc BLOB-afhandeling

  3. Spring Boot + docker-compose + MySQL:verbinding geweigerd

  4. Converteer 'smalldatetime' naar 'time' in SQL Server (T-SQL-voorbeelden)