我从Facebook获取一些字符串,但我不知道字符串中的whitch编码。我需要在插入数据库表之前将此字符串转换为utf8。收到此错误消息。
这是我的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 . '")';
答案 0 :(得分:3)
mysql_query('set names utf8');
答案 1 :(得分:1)
看一下utf8_encode为你做这件事。请记住,这仅适用于您的数据实际上是UTF-8编码的情况。不幸的是,没有办法只看字符串,看看它正在使用什么编码。
答案 2 :(得分:1)
您可能想看看这个问题:
Detect encoding and make everything UTF-8
的第二个答案他编写了一个类(并提供了它的链接),它可以正确地将Windows Extended ASCII编码为UTF8,并在必要时更正UTF8。
当你在UTF8的土地上时,有一个非常方便的工具:)
答案 3 :(得分:1)
对我来说,代码如下:
$ mysqli = mysqli_connect(...); mysqli_query($ mysqli,'SET NAMES“utf8”COLLATE“utf8_general_ci”');
或只是:
mysqli_set_charset($ mysqli,'utf8');
问候,祝你好运!