为什么获胜';当我的MySQL插件包含®;性格


Why won't my MySQL insert work on PHP when it contains a ® character?

首先,我使用了旧的不推荐使用的mysql_query,但目前我还无法大幅更改代码。

好吧,当我试图通过PHP(来自表单POST)执行带有®字符的INSERT时,我的代码失败了,插入没有发生:

$insert_title = "
    INSERT INTO pin (
        title, 
        front
    ) VALUES (
        '".mysql_escape_string($_POST['pintitle'])."', 
        '".mysql_escape_string($_POST['pinfront'])."'
    )";

但是,当我将其粘贴到MySQL工作台并执行该语句时,它可以很好地插入:

INSERT INTO pin ( title, front ) 
VALUES ( 'test', '®' )

我在PHP方面做错了什么?

以下是mysql_error()向我展示的内容:

1366: Incorrect string value: ''xAE' for column 'front' at row 1

我的问题是我在网站端没有正确的UTF-8编码(在我的例子中是PHP)。我只是添加了这个,它被解决了:

<?php
header('Content-type: text/html; charset=utf-8');
?>