se non erro sulla sinassi select,creazione tabelle,insert si puo specificare il charset. cmq. così viene creata una tabella e il campo testo in latin1_swedish_ci.
Originalmente inviato da
competenzepertutti
Io ho bisogno che di scrivere le lettere così come sono.
https://dev.mysql.com/doc/refman/5.0/en/char.html ciò non è esatto tu non limiti i caratteri ma i bytes che sono uguali in entrambi i casi. à in utf-8 è due bytes.prova con questo se puoi dopo la connessione a mysql.
Codice PHP:
mysqli_set_charset($con,"utf8")
(a me funziona la visuale in utf-8 del script proposto prima). però sono convinto che quando si crea la insert/select si può specificare il charset. dunque dopo aver creato da phpmyadmin la tabella e il campo in utf8_general_ci prova così.
Codice PHP:
<?php
header('Content-type: text/html; charset=UTF-8');
$mysqli = new mysqli('localhost', 'alemoppo', '', 'my_alemoppo');
$mysqli->set_charset("utf8");
$mysqli->query('CREATE TABLE IF NOT EXISTS charsettest (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
testo VARCHAR(255)
)');
if(isset($_POST['insert']))
if(!$mysqli->query('INSERT INTO charsettest (testo) VALUES (\''.$mysqli->escape_string($_POST['insert']).'\')'))
echo $mysqli->error;
?><!doctype html>
<head>
<title> test charset</title>
</head>
<body>
Contenuto attuale: <br>
<textarea>
<?php
$q = $mysqli->query('SELECT * FROM charsettest');
while($r = $q->fetch_assoc())
echo $r['testo'].PHP_EOL;
?>
</textarea><br>
<label for="testo">Nuovo contenuto:</label>
<form action="<?= $_SERVER['PHP_SELF'] ?>" method="POST">
<input type="text" name="insert" value="" id="testo">
<input type="submit" value="invia">
</form>
</body>
</html>