Salve, devo passare dei dati da una pagina ad un altra che li processa e li stampa in un file pdf, ma sto avendo dei problemi con i caratteri speciali. i dati sono presi da una tabella database e stampati come un elenco, il problema è che appena incontra un carattere speciale si ferma li e tutto quello che cè dopo non viene stampato a video. Ho provato ad utilizzare la funzione str_replace ma non funziona.
La prima rogna sono gli apici singoli e doppi, non sono riuscito a sostituirli in nessun modo. L'unico risultato l'ho avuto con i doppi apici scrivendoli con il loro codice html e sostituendoli con un altro carattere cosi:
str_replace(""","a",$titolo);
ma se invece della "a" provo a scrivere i doppi apici sotto ogni forma di codice possibile non funziona. Stesso identico problema ad esempio cel'ho con la & commerciale. Se lo scrivo cosi funziona:
str_replace("&","e",&titolo); ma in nessun modo riesco ad ottenere a video il carattere che sto sostituendo.
Altra cosa strana è che aggiungendo quest'ultimo str_replace quello dei doppi apici smette di funzionare. Ho provato anche htmlentities() ma non cambia nulla... come posso fare?
Ciao è un discorso complesso.. Scarica un editore esadecimale e riporta qui le lettere A-Fa-f[0-9]... i dati nel database vanno specificati come utf-8 esclusivamente da php non da phpmyadmin (altrimenti se non esiste un charset per il database i dati già presenti saranno in ISO-8859-1) quindi devi provare con nuovi caratteri e devi fare tutto con PHP e non phpmyadmin (altrimenti non li salva in utf-8)..
È in ISO-8859-1 è un byte mentre in UTF-8 sono due byte... C'è da indicare che dal php 5.6 le pagine vengono servite in UTF-8...
Dunque è normale che se si legge in utf-8 una stringa ISO-8859-1 non si legge o appaiono dei rombi con un punto interrogativo.
Gli apici singoli o doppi in un contesto stringa sono riservati sia in php che nel database mysql.
La visualizzazione HTML differisce da quella testuale ad esempio & può solo essere rappresentato in & (il browser lo trasforma in &) se si legge da html menntre in .txt si può leggere direttamente &.
Quindi
1a)la pagina che salva e legge i dati deve essere in utf-8
1b)Nel database vanno inseriti dati utf-8 senza l'aiuto di phpmyadmin
Fai una prova così su nuove tabelle http://forum.it.altervista.org/php-m...ml#post1372667
Questa funzione restituisce una stringa con i caratteri di escape http://php.net/manual/en/mysqli.real-escape-string.php quando li prelevi e non vanno memorizzati nel database li devi togliere :)
Più o meno è questo il tuo problema ma senza codice e la libreria è impossibile aiutarti..
Lo so che non hai capito nulla ma si procede un passo alla volta
Ultima modifica di darbula : 12-06-2018 alle ore 14.32.46
Sto utilizzando FPDF. Le pagine php sono tutte settate in UTF-8, ho fatto varie prove nel database andando anche a modificare manualmente i caratteri speciali ma il pdf sembra non ammettere a prescindere caratteri speciali come ", ', &, +, ecc... Sto provando varie conversioni ma non ne vengo a capo!
Puoi fornire un esempio di codice completo? (Creando nuove tabelle con dei dati come ti ho mostrato nel link) Così magari io ci possa lavorare..
Citazione della libreria dal seguente sito http://www.fpdf.org
Che lingue posso usare?
La classe può produrre documenti in molti linguaggi oltre a quelli Europei Occidentali: Centro Europei, cirillico, greco e baltico, purchè abbiate i font TrueType o Type1 con il set di caratteri.
Prima di creare questo file .PDF puoi creare un file .txt da condividere pubblicamente?
Ultima modifica di darbula : 13-06-2018 alle ore 18.36.59