Buongiorno a tutti.
Sto facendo una prova per cercare di risolvere il problema che riscontro quando registro nel db MySql lettere accentate, i gradi (°) e il simbolo dell'euro.
Situazione su register.it (dove abbiamo l'hosting Linux):
Versione MySql: 5.5.34
Versione PHP: 6.1
Ho creato una tabella (testutf) con 2 campi, un progressivo e un campo varchar(16) con codifica utf8_general_ci.
Poi ho preparato questa paginetta:
Fino all'invio della query il carattere viene visualizzato correttamente.
Quindi il problema risiede nel momento dell'esecuzione della query, ma non riesco a capire quale sia questo problema...
Come vedete, la pagina php inizia con l'attribuzione della codifica utf8, e anche nell'head della parte html ho inserito la stessa cosa.
Quando vado nel db a guardare cosa è stato registrato, invece di € trovo sempre €, anche cambiando diverse codifiche (utf8_bin, o altre).
Devo forse aggiornare MySql? O magari basterebbe utilizzare Mysqli (che non uso ancora...)?
Grazie per i suggerimenti.
A presto...
Sto facendo una prova per cercare di risolvere il problema che riscontro quando registro nel db MySql lettere accentate, i gradi (°) e il simbolo dell'euro.
Situazione su register.it (dove abbiamo l'hosting Linux):
Versione MySql: 5.5.34
Versione PHP: 6.1
Ho creato una tabella (testutf) con 2 campi, un progressivo e un campo varchar(16) con codifica utf8_general_ci.
Poi ho preparato questa paginetta:
PHP:
<?php
mb_internal_encoding('UTF-8');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Inserimento Ricette per le Dispense</title>
<link href="backoffice.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form name="pippo" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" />
<input type="text" name="pippo" Size="8">
<input type="submit" name="submit" value="vai">
</form>
<?
$pippo = $_POST['pippo'];
echo $pippo;
if (isset($_POST['submit']))
registra();
function registra() {
$pippo2 = $_POST['pippo'];
echo $pippo2;
// $pluto = htmlentities($pippo2);
include 'backoffice/connect.php';
$query = ("INSERT INTO testutf VALUES ('', '$pippo2')");
$result1 = mysql_query($query);
echo "<br>fatto";
}
?>
</body>
</html>
Fino all'invio della query il carattere viene visualizzato correttamente.
Quindi il problema risiede nel momento dell'esecuzione della query, ma non riesco a capire quale sia questo problema...
Come vedete, la pagina php inizia con l'attribuzione della codifica utf8, e anche nell'head della parte html ho inserito la stessa cosa.
Quando vado nel db a guardare cosa è stato registrato, invece di € trovo sempre €, anche cambiando diverse codifiche (utf8_bin, o altre).
Devo forse aggiornare MySql? O magari basterebbe utilizzare Mysqli (che non uso ancora...)?
Grazie per i suggerimenti.
A presto...