具有特殊字符的值在mysql数据库中最终不同

时间:2012-11-13 09:28:05

标签: php mysql ajax

adress.js

function addAdress(){
var s = document.getElementById('addStreetName').value;
var sn = document.getElementById('addStreetNumber').value;
var sl = document.getElementById('addStreetLittera').value;
var sz = document.getElementById('addZipCode').value;
var sa = document.getElementById('addAreaCode').value;

$.ajax({
    url: 'db/addAdress.inc.php',
    type:'POST',
    dataType: 'json',
    data: { 
        addStreetName: s,
        addStreetNumber: sn,
        addStreetLittera: sl,
        addZipCode: sz,
        addAreaCode: sa
    },
    success: function(output_string){
        $('#addAdressResultBox').append(output_string);
    },
    error: function (xhr, ajaxOptions, thrownError) {
    alert(xhr.status);
    alert(thrownError);
  }
});
}

addAdress.inc.php

include('../inc/conn.inc.php');

$query = "INSERT INTO comhem_profiler_adresses (comhem_profiler_adresses_street, comhem_profiler_adresses_street_number, comhem_profiler_adresses_littera, comhem_profiler_adresses_zip_code, comhem_profiler_adresses_area_code)
VALUES ('" . $_POST['addStreetName'] . "', '" . $_POST['addStreetNumber'] . "', '" . $_POST['addStreetLittera'] . "', '" . $_POST['addZipCode'] . "', '" . $_POST['addAreaCode'] . "'";
$addAdress = mysql_query($query) or die(mysql_error()); 
mysql_close();

在此脚本中,我想向数据库添加地址。但是当他们最终进入数据库时​​,特殊字符就像其他字符一样完整。 Sörbyvägen最终像Sörbyvägen。我不知道在哪里看到这个变化。

它似乎不是数据库,因为我用脚本将这些更改为他们的html对应物。 Sörbyvägen仍然出现在数据库中,但与html对应物一起出现。并尝试了htmlspecialchars()。仍然在数据库中出现为Sörbyvägen。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

确保您的表格default-character-setutf8default-collationutf8_general_ci

还要确保在连接到MySQL后使用mysql_set_charset("UTF8", $connection);

答案 1 :(得分:0)

你需要正确地将这样的字符编码为UTF-8以及设置你的数据库以使用UTF-8,然后它将像魅力一样工作。您还需要知道将其正确转换为utf-8的基本编码是什么