MySQL UTF-8字符插入问题

时间:2012-09-21 17:01:42

标签: php mysql encoding character-encoding

我从Facebook获取一些字符串,但我不知道字符串中的whitch编码。我需要在插入数据库表之前将此字符串转换为utf8。收到此错误消息。 error screenshot

这是我的PHP代码。

$email = (isset($this->_userinfo['email']) ? $this->_userinfo['email'] : '');
$fname = $this->_userinfo['first_name'];
$lname = $this->_userinfo['last_name'];
$name  = $this->_userinfo['name'];

$sql = 'INSERT INTO users '
     . '(fbid, fbuid, fullname, userlevel, email, name, sirname) '
     . 'VALUES("'
     . $this->_fbid . '","'
     . $fbuid . '","'
     . $name . '","' 
     . $userlevel . '","' 
     . $email . '","' 
     . $fname . '","' 
     . $lname . '")';

4 个答案:

答案 0 :(得分:3)

你尝试过这段代码吗?

   mysql_query('set names utf8'); 

答案 1 :(得分:1)

看一下utf8_encode为你做这件事。请记住,这仅适用于您的数据实际上是UTF-8编码的情况。不幸的是,没有办法只看字符串,看看它正在使用什么编码。

答案 2 :(得分:1)

您可能想看看这个问题:

Detect encoding and make everything UTF-8

尤其是Sebastian Grinoli

的第二个答案

他编写了一个类(并提供了它的链接),它可以正确地将Windows Extended ASCII编码为UTF8,并在必要时更正UTF8。

当你在UTF8的土地上时,有一个非常方便的工具:)

答案 3 :(得分:1)

enter link description here

  

对我来说,代码如下:

$ mysqli = mysqli_connect(...); mysqli_query($ mysqli,'SET NAMES“utf8”COLLATE“utf8_general_ci”');

或只是:

mysqli_set_charset($ mysqli,'utf8');

问候,祝你好运!