2012-05-02 50 views
1

我想從mysql數據庫中打印Json數據,但瀏覽器中的數據沒有正確顯示。我輸入帶有重音符號的名稱,例如:José或L'Alcudia(它們是西班牙文名稱) 我有兩個php文件,一個用於將數據插入數據庫,另一個用於返回JSON數據。另一方面,我有一個html文件(一個表單),允許我輸入數據。Json編碼php文件

//HTML FILE 
<!DOCTYPE html> 
<html lang="es"> 

<head> 
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 
</head> 
<header></header> 
<body> 
<form id="formulario" name="formulario" method="post" action="insertar_persona.php" enctype="multipart/form-data"> 
    <p>Nombre:</p> 
    <input type="text" name="nombre" value="nombre" />  
    <br/><br/> 
    <input type="submit" id="insertar" name="insertar" value="Insertar"/> 

</form> 
</body> 
</html> 



//INSERT PHP FILE 

<?php header ('Content-type: text/html; charset=utf-8'); 
//Credenciales de la BBDD 
$db = "prueba"; 
$host = 'localhost'; 
$username = "dpbataller"; 
$password = '1234'; 

//Conectamos al servidor de la Base de datos 
$link = mysql_connect($host,$username,$password) or die("No se puede conectar"); 
//Seleccionamos la BBDD 
@mysql_select_db($db) or die ("No se ha podido seleccionar a la base de datos"); 
//Lanzamos la consulta 
$consulta = mysql_query("INSERT INTO personas (id,nombre) VALUES ('','$_POST[nombre]')"); 
?> 



//GET JSON DATA 
<?php header ('Content-type: text/html; charset=utf-8'); 
//Credenciales de la BBDD 
$db = "prueba"; 
$host = 'localhost'; 
$username = "dpbataller"; 
$password = '1234'; 
//Conectamos al servidor de la Base de datos 
$link = mysql_connect($host,$username,$password) or die("No se puede conectar"); 
//Seleccionamos la BBDD 
mysql_select_db($db) or die ("No se ha podido seleccionar a la base de datos"); 
//Lanzamos la consulta 
$consulta = mysql_query("SELECT id,nombre from personas"); 
//Creamos un array para almacenar los resultados 
$filas = array(); 
//Agregamos las filas devueltas al array 
while ($r = mysql_fetch_assoc($consulta)) { 
$filas[] = $r; 

} 
//Devolvemos el resultado 
echo json_encode($filas); 
?> 

當我嘗試顯示在瀏覽器中的數據表明這一點:

[{"Id": "1", "name": "Jos \ u00e9"}] 

數據庫和表的編碼是UTF-8_spanish_ci

會發生什麼?有人幫助我嗎?

回答

0

嘗試改變內容類型:應用程序/ JSON

<?php header ('Content-type: application/json; charset=utf-8'); 
+0

它不工作,它仍會出現 [{ 「ID」: 「1」,「name」:「Jos \ u00e9」},{「id」:「2」,「name」:「asd」}] – dpbataller

+0

我認爲它是json字符串的原始碼。你有嘗試解碼客戶端嗎?看看jQuery.parseJSON –

0

您可以使用這些功能:

function encodeIt($array) { 
    return json_encode(array_map('base64_encode', $array)); 
} 

function decodeIt($string) { 
    return array_map('base64_decode', json_decode($string)); 
} 
+0

對不起,但我是新來的PHP編程,並不太明白我把功能和什麼是我通過的參數。 – dpbataller

+0

將這些函數包含在腳本的頂部,並分別用它們代替json_encode和json_decode。 – Manish

+0

它不工作:( – dpbataller