如何在mysql数据库中保存字符串

时间:2011-07-07 14:08:18

标签: php javascript ajax utf-8

我试图保存这个字符串:

~`@#$%^&*()_+}{":?><,./;'[]=-|\ 

在php中使用AJAX调用。但是在数据库中它保存为:

~`@#$%^????

这是我的AJAX电话

function saveComment(timesheetId,activityId,date,comment,employeeId) {

    var r = $.ajax({
        type: 'POST',
        url: commentlink,
        data: "timesheetId="+timesheetId+"&activityId="+activityId+"&date="+date+"&comment="+comment+"&employeeId="+employeeId,
        async: false
    }).responseText;

    return r;
}

编辑:修复了字符串和代码的显示。

3 个答案:

答案 0 :(得分:2)

您需要在javascript中使用奇怪的字符在字符串上调用encodeURIComponent,然后再将其发送到服务器。

编辑:Tomalak指出了一种更好的方法。

答案 1 :(得分:0)

如果你想在数据中加入一个变量'text',你应该在执行之前通过$ .URLEncode(text)运行它。事实上,'&amp;'文本中的字符引入了一个新参数。

答案 2 :(得分:0)

jQuery支持将对象作为Ajax请求中的数据参数。这也会自动为您进行URL编码:

$.ajax({
  type: 'POST',
  url: commentlink,
  data: {
    timesheetId: timesheetId, 
    activityId:  activityId, 
    date:        date, 
    comment:     comment, 
    employeeId:  employeeId
  },
  success: function (data) {
    alert(data);
  }
});

此外 - 您永远不应该使用同步Ajax请求。始终使用回调函数。