-1

我需要将 Facebook 中的用户名添加到数据库,这些名称具有 UTF-8 字符,例如 (ą,č,ę,ė,į,š,ų,ū)。例如,当我将它添加到数据库时,字母š看起来像Å¡

在 myPhpAdmin 中,我找到了设置编码 UTF-8 的表设置,我这样做了,但同样的问题。我添加mysql_set_charset('utf8');到我的代码中,但这也无济于事。代码现在看起来像:

<?php 
    $time = $_POST['time'];
    $username = $_POST['userName'];

    session_start();
    $name = $_SESSION['vardas']; 
    $times = gmdate('H:m:s', $time);

    mysql_set_charset('utf8');
    $mysqli = new mysqli("localhost","my_db","pass","my_db");
if ($stmt = $mysqli->prepare("INSERT into eurokos (time, userName) VALUE (?,?) ")) {

$stmt->bind_param('is', $time, $name);
  // $stmt->bind_param("s", $username);

   $stmt->execute();

   if ($stmt->error != '') {
       echo ' error:'.$stmt->error;
   } else {
       echo 'success';
   }
   $stmt->close();
} else {
   echo 'error:'.$mysqli->error;
}

此 php 文件也转换为 UTF-8 编码,但无济于事。

当我使用此代码echo "Name: " . $user_profile['name'];Facebook 正确打印带有 UTF-8 普通字母的用户名时。所以问题是将用户名插入数据库。

我用来将用户名变量从 fb.php 发送到 db.php(也许在这里我需要使用任何编码?)

$name = $user_profile['name'];
session_start();
$_SESSION['vardas'] = $name;

你可以帮帮我吗?谢谢。

4

1 回答 1

1

这解决了我的问题:

if (!$mysqli->set_charset("utf8")) {
    printf("Error loading character set utf8: %s\n", $mysqli->error);
} else {
    printf("Current character set: %s\n", $mysqli->character_set_name());
}
于 2013-05-10T15:51:55.433 回答