2012-10-05 78 views
0

我在某個地方的字符集配置有問題 - 並且需要一些幫助。jquery post將錯誤的字符集添加到數據庫中

我正在使用jQuery jeditable通過php更新數據庫的值。當我通過此腳本發佈øæå時,數據庫將被替換爲æøå。我也嘗試過utf8_encode,但沒有運氣。定期交與øæå工作正常

$(document).ready(function() { 
    $('.update_pipu_comment').editable('http://lin01.test.no/save.php?update=pipu_comment', { 
     event : 'dblclick', 
     submit : 'ok', 
     indicator : '<img src="image/indicator.gif">', 
     tooltip : 'doubleclick to edit' 
    }); 
}); 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<?php 
//save.php 
require('config.php'); 
$postvalue = $_POST[value]; 
$id = $_POST[id]; 
$update = $_GET[update]; 

if($update == 'pipu_comment') { 
$res = mysql_query("UPDATE pinpuk SET comment = '$postvalue' WHERE id = '$id'"); 
} 
echo $postvalue; 
+0

你的數據庫是否設置了字符集UTF8? – gks

+0

這只是像5小時前剛剛問過http://stackoverflow.com/questions/12737875/mysql-outputs-western-encoding-in-utf-8-php-file/ – Mamsaac

+0

像一個訓練有素的眼睛 - 可能是,但我閱讀了關於您發佈Mamsaac鏈接的問題的答案,並且根據該問題的答案找不到解決方案 – normarth

回答

1

您可以先設置字符集爲UTF-8:

$query = "SET NAMES 'UTF8'"; 
mysql_query($query); // this before any insert 

而且你的代碼是不是SQL安全:

$postvalue = mysql_real_escape_string($_POST['value']); 
$id = (int)$_POST['id']; 

由於一個側面說明,你應該嘗試移動到MySQLi或PDO。 Here是一個不錯的教程,讓你開始使用PDO。

+0

感謝您的提示,我一定會閱讀您建議的教程。你建議的代碼完美工作。 – normarth

相關問題