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

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

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.

Chủ Đề