0

我试图将汉语/汉语字符插入我的数据库,但我只得到 ????? 当我做。iv 查看大量在线信息,但没有解决方案有效。当我在我的数据库中运行带有汉语/汉语字符的插入查询时,它可以工作,所以我知道我的数据库是为 utf8 设置的......我在我的 PHP 文件中做的事情就是问题......任何帮助都是非常感激。

<?php
include 'config.php';  
header('Content-Type:text/html; charset=UTF-8');
mysqli_query("SET NAMES utf8");
mysqli_set_charset('utf8');


// check for required fields
if (isset($_POST['name'])) {
$name = mysqli_real_escape_string($link, $_POST['name']);

$result = mysqli_query($link, "INSERT INTO scores(`id` , `name`)VALUES(NULL, '$name'");
4

2 回答 2

3

您需要确保您的数据库在 UTF-8 模式下运行。您需要在桌子本身上执行此操作。您说您插入了字符串,但是您是否检查过是否可以将其读回?正如我在下面的评论中所指出的,您应该确保您连接到启用了 UTF-8 的 MySQL。下面的答案中有更多信息:

如何让 MySQL 正确处理 UTF-8

此外,请确保 PHP 文件本身以 UTF-8 格式保存。最后但同样重要的是确保 HTML 页面正确设置为使用 utf-8:

<meta charset="utf-8"> 与 <meta http-equiv="Content-Type">

于 2013-08-24T14:37:11.553 回答
1

这是我依赖的旧备忘单。请记住,其中一些信息已过时

header('Content-Type: text/html; charset=utf-8');
mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');

// 仅适用于旧版 MySQL_query

mysql_set_charset('utf8',$con);

// 仅适用于 MySQLi

$mysqli->set_charset("utf8")

另请查看: http ://tympanus.net/codrops/2009/08/31/solving-php-mysql-utf-8-issues/

PHP 过去并不是原生 UTF-8 友好的,你必须依赖像下面这样的辅助函数。我很确定左边的所有功能已经成为 UTF-8 友好的几年了。

mail()                -> mb_send_mail()
strlen()              -> mb_strlen()   
strpos()              -> mb_strpos()
strrpos()             -> mb_strrpos()
substr()              -> mb_substr()
strtolower()          -> mb_strtolower()
strtoupper()          -> mb_strtoupper()
substr_count()        -> mb_substr_count()
htmlentities($var)    -> htmlentities($var, ENT_QUOTES, 'UTF-8')
于 2013-08-26T14:42:44.673 回答