使用html5 / jquery / php / mysql时的charset问题

时间:2015-10-01 07:57:26

标签: jquery ajax html5 character-encoding

我在标题中有一个HTML 5页面:

double.Parse(no1d, CultureInfo.InvariantCulture)

在同一页面上,我以这种方式使用Jquery发出Ajax请求:

<meta charset="utf-8">

一切正常,在ajax / subscribe.php我有这个标题:

$.ajax({
        url: "ajax/subscribe.php",
        type: "POST",
        encoding: "UTF-8",
        data: formData,...

我的MySQL数据库有一个utf8_unicode_ci的默认字符集。但是......当我处理像'égallement'这样的单词时,它会被保存在数据库中作为'gallement',é被剥离。还会自动发送电子邮件,在此电子邮件中,“é”将替换为问号。 Anny建议解决这个问题?

2 个答案:

答案 0 :(得分:0)

在将encodeURIComponent() JavaScript函数添加到查询字符串之前,您应该使用它。

和内容类型应如下所示:

var context;
var dx= 4;
var dy=4;
var y=150;
var x=10;
function draw(){
    context= myCanvas.getContext('2d');
    context.clearRect(0,0,300,300);
    context.beginPath();
    context.arc(x,y,20,0,Math.PI*2,true);
    context.closePath();
    context.fill();
    if( x<0 || x>300){
        dx=-dx;
        context.fillStyle = getRandomColor();
    }
    if( y<0 || y>300){
        dy=-dy;
        context.fillStyle = getRandomColor();
    }
        x+=dx;
        y+=dy;

}
setInterval(draw,10); 


function getRandomColor() {
    var letters = '0123456789ABCDEF'.split('');
    var color = '#';
    for (var i = 0; i < 6; i++ ) {
        color += letters[Math.floor(Math.random() * 16)];
    }
    return color;
}

答案 1 :(得分:0)

谢谢,我试过了:

{{1}}

但现在数据保存在db中,如下所示:

T%C3%A9%C3%A9%C3%a9st。 é被%c3%a9%

取代

已解决:在PHP文件中,我必须对POST获得的每个字符串使用urldecode()