Special character issue in php

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

Special character issue in php

Pedro LobitoPedro Lobito

88.1k29 gold badges238 silver badges256 bronze badges

8

Special character issue in php

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

Special character issue in php

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.

How do I allow special characters in PHP?

Tip: To convert special HTML entities back to characters, use the htmlspecialchars_decode() function..
& (ampersand) becomes &.
" (double quote) becomes ".
' (single quote) becomes '.
< (less than) becomes <.
> (greater than) becomes >.

What does htmlspecialchars mean in PHP?

Description. The htmlspecialchars() function is used to converts special characters ( e.g. & (ampersand), " (double quote), ' (single quote), < (less than), > (greater than)) to HTML entities ( i.e. & (ampersand) becomes &, ' (single quote) becomes ', < (less than) becomes < (greater than) becomes > ).

Why use htmlspecialchars in PHP?

Summary: in this tutorial, you'll learn how to use the PHP htmlspecialchars() function to prevent XSS attacks. ... Introduction to the PHP htmlspecialchars() function..

Can UTF

UTF-8 represents ASCII invariant characters a-z, A-Z, 0-9, and certain special characters such as ' @ , . + - = / * ( ) the same way that they are represented in ASCII.