【问题标题】:PHP and MySQL french accent works in PHPMyAdmin but not in pagePHP 和 MySQL 法语口音在 PHPMyAdmin 中有效,但在页面中无效
【发布时间】:2017-02-07 11:51:11
【问题描述】:

所以我在 wamp 服务器上使用 PHPMyAdmin 手动将数据插入到我的数据库中。我的数据库在 utf8_bin 中,我的表在 utf8_bin 中,表的列在 utf8_bin 中。我添加了菜单名称“Hébergement”(意为法语托管)。在 PHPMyAdmin 中,重音按预期显示,并且带有重音的数据是可读的。

当我加载菜单名称时,我会得到这个重音而不是重音:H�bergement。

这是 PHP 的简历

$connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);
$query  = "SELECT * ";
$query .= "FROM category ";
$query .= "WHERE id = {$newSection}";
$sectionInfo = mysqli_query($connection, $query);
$section = mysqli_fetch_assoc($sectionInfo);
$output .= $section["name"];
echo $output;

如果我用$output = "Héberment"; 替换$output,回显将显示重音,因此问题不是来自我的HTML 或我的PHP。

现在如果我UPDATE在PHP页面中用纯文本写的单词的字段然后查询它的新内容,它将显示重音。问题是现在 PHPMyAdmin 中的“é”被替换为“é”,导致我的文本不可读。

现在,由于 PHPMyAdmin 是一个网页,它能够正确地向我显示重音符号,因此必须有一种方法可以像 PHPMyAdmin 一样查询表格内容并将其显示为重音符号,而不是“�”同时保持内容在 PHPMyAdmin 中的可读性。

我是 PHP 和 MySQL 的初学者,如果您需要更多详细信息,请告诉我。

编辑:为了澄清,我截取了我在 PHPMyAdmin 中部分编辑的一行(手动添加了可读的重音)以说明可读性的对立。

【问题讨论】:

  • 确保正确设置页面的charset
  • 是的,我在<head> 标签后面有这个:<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  • 它需要在页面的<head>部分,而不是在<html>之后
  • 我只是把它移到了<head>,它仍然做同样的事情,正如我所说,如果我在我的 PHP 文档中用纯文本写它,它会正确显示,只有当我从 MySQL 查询它不会!
  • 请查看mysqli_set_charset。在写入和读取数据时使用它

标签: php mysql database phpmyadmin


【解决方案1】:

谢谢大家

$connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);

mysqli_set_charset($connection, 'utf8');

$query  = "SELECT * ";
$query .= "FROM category ";
$query .= "WHERE id = {$newSection}";
$sectionInfo = mysqli_query($connection, $query);
$section = mysqli_fetch_assoc($sectionInfo);
$output .= $section["name"];
echo $output;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多