1

我正在从 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 . '")';
4

4 回答 4

4

你试过这个代码吗?

   mysql_query('set names utf8'); 
于 2012-09-21T18:02:31.373 回答
1

看看utf8_encode来为你做这件事。请记住,这仅在您的数据实际上是 UTF-8 编码时才有效。不幸的是,没有办法只查看字符串并查看它使用的编码。

于 2012-09-21T17:04:24.030 回答
1

你可能想看看这个问题:

检测编码并使一切变为 UTF-8

尤其是塞巴斯蒂安·格里诺利的第二个答案

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

当你在 UTF8 领域时,一个非常方便的工具:)

于 2012-09-21T17:08:46.243 回答
1

在此处输入链接描述

对我来说,以下代码工作:

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

要不就:

mysqli_set_charset($mysqli, 'utf8');

问候,祝你好运!

于 2015-01-23T06:47:22.803 回答