significa che nel processo perdi la codifica.
controlla che tutti i file coinvolti siano codificati utf-8 e imposta il charset anche nel file php, oltre a <meta charset="utf-8"> se il file in questione è anche una pagina visibile all'utente
Codice PHP:
header('Content-Type: text/html; charset=utf-8');
.. grande !
però ho 2 piccoli problemi ..
legati ad una funzione che richiamo per trasformare il minuscolo in maiuscolo ..
Codice PHP:
function maiuscolo($stringa) {
$vocali_accentate = array("à","á","è","é","ì","í","ò","ó","ù","ú");
$vocali_accentate_maius = array("À","Á","È","É","Ì","Í","Ò","Ó","Ù","Ú");
return strtoupper(str_replace($vocali_accentate,$vocali_accentate_maius,$stringa)); }
1)
se la funzione è dentro alla stessa pagina PHP il carattere '€' mi diventa: '�'
2)
se la funzione è dentro ad un file 'incluso' NON funziona:
(rimane il problema con il carattere '€')
Indifferente se in testa al file incluso ci metto o meno la stringa:
Codice PHP:
header('Content-Type: text/html; charset=utf-8');
Codice PHP:
header('Content-Type: text/html; charset=utf-8');
require_once 'inc_funzioni_varie.php' ;
...
- Input
modello_veicolo_new --------> €,à,á,è,é,ì,í,ò
- Output senza richiamare la funzione
modello_veicolo_new maiuscolo --------> €,à,á,è,é,ì,í,ò
- Output richiamando la funzione dentro alla pagina
modello_veicolo_new maiuscolo --------> ‚�,À,Á,È,É,Ì,Í,Ò
- Output richiamando la funzione dentro al file incluso
modello_veicolo_new maiuscolo --------> ‚�,à,á,è,é,ì,í,ò
Ultima modifica di JANUS70; 13-06-2020 a 01:09
tanta fatica per complicare le cose semplici...
https://www.w3schools.com/php/func_s...strtoupper.asp
ho letto ora la modifica del post.
il file incluso non necessita della dichiarazione header (immagino si trovino tutte all'inizio delle pagine reali).
il file incluso deve essere codificato utf-8 come gli altri.
per fare un replace verso uppercase esiste una funzione nativa. incasinarla.. porterà sicuramente casini.
- input:Codice PHP:
$modello_veicolo_a = maiuscolo_2($modello_veicolo_new);
function maiuscolo_2($stringa) {
$vocali_accentate = array("à","á","è","é","ì","í","ò","ó","ù","ú");
$vocali_accentate_maius = array("À","Á","È","É","Ì","Í","Ò","Ó","Ù","Ú");
return strtoupper(str_replace($vocali_accentate,$vocali_accentate_maius,$stringa)); }
modello_veicolo_new --------> DOBLò è à ì €
- output:
modello_veicolo_a maiuscolo --------> DOBLÒ È À Ì ‚�
Codice PHP:
$modello_veicolo_b = strtoupper($modello_veicolo_new);
- output:
modello_veicolo_b maiuscolo --------> DOBLò è à ì ‚�
scusami ma credevo fosse sufficiente strtoupper.
riproponi la questione nella sezione php