Salve,
ho un problema quando inserisco una parola in cui è presente la e acuta (é). Nel database compare questo détendu.
E' un problema di codifica di caratteri ma non riesco a risolvere.
Potete aiutarmi?
Salve,
ho un problema quando inserisco una parola in cui è presente la e acuta (é). Nel database compare questo détendu.
E' un problema di codifica di caratteri ma non riesco a risolvere.
Potete aiutarmi?
Come stai inserendo i dati nel database? Come li estrai e visualizzi?
la stringa letta in utf-8 corrisponde ad una e acute détendu mentre letta in iso-8859-1 si legge détendu
Ho risolto per quanto riguarda il database, Ora il problema è quando visualizzo i dati in JSON. Quando trova la e acuta mette il campo null.
Ho messo in php
header("Content-type: text/html; charset=utf-8");
mysqli_set_charset($connect, "utf8");
e quando mostro il json esce D\u00e9tendu.
Come risolvo ora?
json di php accetta solo stringhe utf-8 valide altrimenti restituisce null..
Quindi apri un file imposta iso-8859-1 è inserisci détendu adesso salvalo... prova ad aprirlo in utf-8 è ora vedrai détendu.
Cioè alla funzione json devi passare quella stringa senza modificarla nel database.. mi ripeto détendu è letto in iso-8859-1 la passi a json è funzionerá..
Se ho capito male.. spiega come la leggi e la codifica in uso
Ultima modifica di darbula : 06-10-2016 alle ore 19.08.19
Questo è il codice. Dove devo fare la conversione?
Codice PHP:
<?php
header('Content-Type: application/json; Charset=UTF-8');
include"connect.php";
mysqli_set_charset($connect, "utf8");
$sql = "select * from politici";
$result = mysqli_query($connect, $sql) or die("Error in Selecting " . mysqli_error($connect));
$emparray = array();
while($row =mysqli_fetch_assoc($result))
{
$emparray[] = $row;
}
echo json_encode($emparray);
mysqli_close($connect);
?>
aspetta.. da phpmyadmin come la visualizzi?? ma la pagina è in utf-8 di phpmyadmin? Il problema puo darsi che i dati già salvati nel database sono in iso-8859-1.. togli questa mysqli_set_charset($connect, "utf8"); poiche se non trova stringhe utf-8 valide li converte in unicode
Senza quella istruzione mi da null. Quando salvo i dati nel db faccio sempre mysqli_set_charset ecc
uffa non riesco ancora ad afferrare... prova a recuperlo creando una pagina php con header utf-8 è senza mysqli_set_charset($connect, "utf8");.. devo stabilire come si visualizza la stringa in partenza
Ok ho risolto con preg_replace.
Ultimo problema, nel db ho memorizzato la PATH dell'immagine es ./imgPolitici/juppe.jpg.
Ora in JSON mi da questo "image":".\/imgPolitici\/juppe.jpg", come tolgo \?
potevi risolvere diversamente.. e con json_decode che stringa ottieni? json valido effetua questa aggiunta.
EDIT: Da php 5.4 in pou potresti aggiungere questoJSON_UNESCAPED_SLASHES a json_ebcode ($var, JSON_UNESCAPED_SLASHES);
Ultima modifica di darbula : 06-10-2016 alle ore 21.30.50