Mysql special characters not working

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

Mysql special characters not working

Pedro LobitoPedro Lobito

88.2k29 gold badges238 silver badges256 bronze badges

8

Mysql special characters not working

Neuron

4,5284 gold badges32 silver badges53 bronze badges

answered Aug 16, 2011 at 3:42

AlienWebguyAlienWebguy

75.9k17 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

Mysql special characters not working

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

Not the answer you're looking for? Browse other questions tagged php mysql utf-8 special-characters or ask your own question.

Which characters are not allowed in MySQL?

ASCII NUL (U+0000) and supplementary characters (U+10000 and higher) are not permitted in quoted or unquoted identifiers. Identifiers may begin with a digit but unless quoted may not consist solely of digits. Database, table, and column names cannot end with space characters.

How do I pass special characters in SQL query?

Use braces to escape a string of characters or symbols. Everything within a set of braces in considered part of the escape sequence. When you use braces to escape a single character, the escaped character becomes a separate token in the query. Use the backslash character to escape a single character or symbol.

Which special characters are not allowed in SQL?

Names can contain (but cannot begin with) the following special characters: 0 through 9, #, @, and $.

Does varchar allow special characters MySQL?

So what is varchar in SQL? As the name suggests, varchar means character data that is varying. Also known as Variable Character, it is an indeterminate length string data type. It can hold numbers, letters and special characters.