我需要将用户名从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;
你可以帮帮我吗?感谢。
答案 0 :(得分: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());
}