I Have a form with one textbox called[ProductTitle]
if I write as example "Étuit" in the textbox and click on Save, I post the data in a table called Product. The result int the database for ProductTitle is Étuit. My concern is about the Special character. Instead of putting É in the database , I got that É
When I Load the Product Title ["Étuit"] from the database into a span. That show correctly.
BUT When I load it inside a Textbox to Edit the Product Title, that show Étuit.
Anybody know why.
I Put that in the html head
Note : When I Click save on the form, the data is posted with jquery ajax method.
asked Aug 16, 2011 at 3:38
Jean-FrancoisJean-Francois
1,8894 gold badges35 silver badges72 bronze badges
3
Try seting the client encoding before using the DB.
mysql_query["SET NAMES 'utf8'"];
If the above doesn't work use the utf8 encode/decode functions:
answered Aug 16, 2011 at 3:52
Pedro LobitoPedro Lobito
88.1k29 gold badges238 silver badges256 bronze badges
8
Neuron
4,5284 gold badges32 silver badges53 bronze badges
answered Aug 16, 2011 at 3:42
AlienWebguyAlienWebguy
75.8k17 gold badges120 silver badges144 bronze badges
5
Probably what is happening is that the default character set for the client is not set to UTF-8, so you're getting tranposition in one direction or the other. This is covered in a number of different ways here:
Often an initialization query of "SET NAMES utf8" just after the connection is instantiated will solve the issue going forward but make sure that what you think is stored [utf8] is actually what was stored. You might have a cleanup job if not.
answered Aug 16, 2011 at 3:59
3
Not to bother with SET NAMES before every connection in the code, a parameter in mysql connection string can be used:
"jdbc:mysql://hostAddress:port/databaseName?characterEncoding=UTF-8"
answered Nov 3, 2013 at 13:36
ZonZon
16.7k6 gold badges83 silver badges94 bronze badges
This post explains how to configure and work with UTF-8 in PHP and MySQL. Hope that saves your time.
A UTF-8 Primer for PHP and MySQL
answered Apr 17, 2014 at 15:32
Dmitry PavlovDmitry Pavlov
29.1k8 gold badges99 silver badges115 bronze badges
These work for me:
In the HTML headers:
After the PHP connection:
$conexion = @mysql_connect[$servidor, $usuario, $contrasenha];
mysql_select_db[$BD, $conexion] or die[mysql_error[$conexion]];
mysql_query["SET NAMES 'utf8'"];
answered Feb 10, 2016 at 22:03
lmcDevloperlmcDevloper
3322 silver badges8 bronze badges
I just use set_charset method when i'm using mysqli lib.
error_reporting[E_ALL];
$mysqli = new mysqli['localhost', 'login', "pass", 'database'];
if [ ! $mysqli->set_charset["utf8"] ]
{
printf["Error loading character set utf8: %s\n", $mysqli->error];
}
answered Aug 22, 2017 at 22:54
I also had difficulties with this, but the following always works for me ! Before manipulating your data, make sure to set the encoding as follows:
try{
$dbh = new PDO[$dsn, $user, $pass];
$dbh->query["SET NAMES 'utf8'"];
print "Connected";
}
catch[PDOException $e]{
print "Error!! " . $e->getMessage[]."
";
die[];
}
answered Aug 18, 2018 at 2:10