[php-mysql] Caratteri speciali e accentati

toni93

Utente Attivo
12 Nov 2009
38
0
0
ciao a tutti, ho un problema, uso mysql con tabelle con collation settato a utf8_roman_ci e nell'inserire caratteri accentati o apostrofi e ecc.. , non ho errori nelle query infatti già uso mysql_real_escape_string() ,però nel database i caratteri particolari diventano roba illeggibile.
sono molto poco informato sulle codifiche e spero mi potete indicare un modo per risolvere il mio problema.

grazie.
 
Ultima modifica:

toni93

Utente Attivo
12 Nov 2009
38
0
0
così tante visite e nessuna risposta... tutto sommato non credo sia poi troppo difficile...:confused:
 

SergiusXP

Nuovo Utente
31 Ott 2009
7
0
0
Ciao!
Potresti provare nella pagina php a fare un replace dei caratteri accentati e convertirli... Per esempio:

Codice:
<?php
.........
$stringa = str_replace ("à", "&agrave;", $stringa);
$stringa = str_replace ("è", "&egrave;", $stringa);
$stringa = str_replace ("ì", "&igrave;", $stringa);
$stringa = str_replace ("ò", "&ograve;", $stringa);
$stringa = str_replace ("ù", "&ugrave;", $stringa);
.........
?>

no? :)
 

toni93

Utente Attivo
12 Nov 2009
38
0
0
Ciao!
Potresti provare nella pagina php a fare un replace dei caratteri accentati e convertirli... Per esempio:

Codice:
<?php
.........
$stringa = str_replace ("à", "&agrave;", $stringa);
$stringa = str_replace ("è", "&egrave;", $stringa);
$stringa = str_replace ("ì", "&igrave;", $stringa);
$stringa = str_replace ("ò", "&ograve;", $stringa);
$stringa = str_replace ("ù", "&ugrave;", $stringa);
.........
?>

no? :)

sarebbe corretto ma volevo evitare una cosa del genere e preverirei usare una funzione php già esistente (ammesso che esista) per essere sicuro che risponda bene anche in casi particolari e con più tipi di caratteri possibili.
 

SergiusXP

Nuovo Utente
31 Ott 2009
7
0
0
bè ma, correggimi se sbaglio, se esistesse una funzione del genere sarebbe comunque composta da replace sulla stringa...

E a questo punto non puoi scrivere tu la tua funzione ed utilizzare quella? :)

comunque ecco dei piccoli consigli:

1. Crea il db con charset, collation utf8
2. Crea i tuoi file in utf8 (per alcuni editor non c'è questa opzione, ma è importante, perchè se scrivi una lettera accentata nei tuoi file html usando l'iso come codifica stai certo che vedrai i quadratini).
3. Nei file php inserisci questo all'inizio :
Codice:
header('Content-type: text/html;charset=utf-8');


Per il debug:

1. E' importante sapere che i browser hanno il menu visualizza->"codifica", che in genere è settato su riconoscimento automatico, ma che usato a dovere ti permette di capire in quale charset stai vedendo la pagina e se il risultato è quello che ti aspetti.
2. E altrettanto importante sapere che phpmyadmin non sempre dice la verità, perchè alla fine è un sito che soffre anche lui del problema della codifica, io per essere certo di quello che sto guardando controllo sempre la codifica, e 9 volte su 10 se la cambi vedrai i caratteri corretti.
Ricorda, phpmyadmin è un livello intermedio tra te e il db, è un ottimo strumento, ma non è il db, non dare per scontato che quello che ti mostra è il vero contenuto del db.
 

toni93

Utente Attivo
12 Nov 2009
38
0
0
grazie, nel mio file ho risolto con l'istruzione "header('Content-type: text/html;charset=utf-8');".
se ho capito bene questa istruzione dice al browser di impostare la codifica a utf8, giusto??
in phpmyadmin vedo comunque i caratteri strani anche se imposto manualmente dal browser la utf8, perche?
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
ma nel db vedi dei caratteri senza senso o delle entità HTML?
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
24
Roma
alessandro1997.netsons.org
Io ti suggerirei di usare una funzione che ho scritto tempo fa:
PHP:
function my_htmlentities($var, $qs = ENT_COMPAT, $charset = 'ISO-8859-1')
{
	$search = array('ì', 'è', 'é', 'ò', 'à', 'ù');
	$replace = array('&igrave;', '&egrave;', '&eacute;', '&ograve;', '&agrave;', '&ugrave;');
	
	$var = str_replace($search, $replace, $var);
	$var = htmlentities($var, $qs, $charset, false);
	
	return $var;
}
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
hai provato a forzare l'UTF8 nel db?
PHP:
$db = mysql_connect('localhost', 'user', 'password') or die(mysql_error());
 mysql_set_charset('utf8', $db);
 

toni93

Utente Attivo
12 Nov 2009
38
0
0
hai provato a forzare l'UTF8 nel db?
PHP:
$db = mysql_connect('localhost', 'user', 'password') or die(mysql_error());
 mysql_set_charset('utf8', $db);

ho appena provato ma sembra che non cambi nulla, credo sia già utf8.

ho provato a fare l'input nel db con htmlentities, in questo modo con phpmyadmin vedo le entità html ma nella mia pagina vedo i caratteri strani nonostante facendo ctrl+u vedo le entità. non ci sto capendo più niente:confused::confused:
 
Discussioni simili
Autore Titolo Forum Risposte Data
gandalf1959 problema con la codifica caratteri accentati e speciali tra php e mysql PHP 3
helpdesk [PHP/MySQL] Caratteri russi e giapponesi PHP 3
F Ricreare struttura php+mysql su Xampp Apache 0
M Array associativi php su 2 campi mysql PHP 10
L php mysql non salva solo id PHP 21
L php mysql cerca e visualizza pagina PHP 0
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
Z MySql injection PHP PHP 1
D problema php mysql PHP 1
D problema php mysql PHP 1
L Google chart php mysql PHP 2
L Aiuto per programma web php/mySQL PHP 2
S Problemi delle funzioni eliminate con PHP e MySQL PHP 4
C Aiuto compiuto scuola PHP/MySQL PHP 2
G Problema caricamento tabelle MySql da PhP PHP 0
L update tabelle in php mysql [risolto] PHP 6
F Passare una variabile php dal DB mysql alla pagina PHP 3
B Fare calcoli con php da tabella mysql PHP 2
D [MySQL] [PHP] SQL andare da capo MySQL 0
P [OFFRO] Realizzazione siti web in PHP/MYSQL, responsive e Ottimizzati SEO Offerte e Richieste di Lavoro e/o Collaborazione 0
Tommy03 Firebase o PHP+Mysql? Sviluppo app per Android 0
pjtertdj Visualizzazione dati in php da mysql con funzione matematica in javascript PHP 1
E Cerco programmatore PHP/Mysql - retribuito Offerte e Richieste di Lavoro e/o Collaborazione 0
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
Z Gestionale in Php/mysql: Quanto farsi pagare? Aiuto! Discussioni Varie 0
E Inserimento dati da PHP in tabella MySQL PHP 5
R radio input php mysql PHP 2
E Caricare dati da DB MySql all'apertura pagina, meglio PHP o Javascript? PHP 1
giusebos [retribuito] Cercasi programmatore PHP/MySql Offerte e Richieste di Lavoro e/o Collaborazione 1
N Apache + MySQL + PHP MacOs Mojave Web Server 0
T PHP+MYSQL: problema con quelle maledette lettere accentate... PHP 5
K [PHP + MYSQL ] Inserimento dati in database da form dinamico PHP 13
M [PHP] Metodo migliore per fare login a un DB Mysql PHP 1
webmachine [PHP][MYSQL] Problema con le SELECT PHP 5
V Creare tabella mysql con php non funziona PHP 1
W Area riservata sicura PHP MySQL PHP 12
G php salvare file in campo blob mysql: massimo 4MB PHP 1
xone [Vendo] Gestionale Magazzino PHP-MYSQL Altri Annunci 0
M Stampare con php e mysql PHP 8
P Importazione dati da file xml in db mysql con php PHP 17
xone [Vendo] Script gestionale php-mysql gestione pratiche Altri Annunci 0
D problemi login php 5.6 mysql PHP 1
T PHP+MYSQL: stampare record con numero progressivo PHP 3
F php PDO mysql connessione(select_db) PHP 3
O paginazione php mysql PHP 10
Fede72 Controllo registrazioni PHP Mysql PHP 5
M Aggioranre record in tabella PHP MYSQL PHP 2
T PHP+MYSQL: una select che cerchi un campo vuoto PHP 7
C Php/Mysql query JOIN tra tabelle PHP 4
T serialize() , php e mysql jQuery 1

Discussioni simili