php - 如何删除 utf-8 中无法识别的字符? mysql/php

标签 php mysql utf-8 character-encoding

我有一个设置为 utf-8 的 mysql 数据库。 我已将 php header 设置为:header("Content-Type: text/html; charset=utf-8"); 在我的html中:<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

当我返回任何带有圆引号或撇号的内容时,它们显示为无法识别的字符(内部带有 ? 的黑色菱形)。

如果我对要回显的字符串运行 utf8_encode (),它在 Chrome 中看起来很好,但在 Firefox 中显示不同的奇怪字符。我还可以在整个站点范围内做些什么来使这项工作更好吗?

(我已经使用sequel pro和phpmyadmin访问了数据库)

最佳答案

完整的 utf-8 设置:

1) .htaccess

AddDefaultCharset utf-8
PHP_VALUE default_charset utf-8

2) 在 php 中的mysqli_connect()之后调用:

mysqli_query($this->link, 'SET character_set_client="utf8",character_set_connection="utf8",character_set_results="utf8"; ');

3) 您的数据库应使用“collat​​ion: utf8”字符集创建;表中的所有字段也应该是“排序规则:utf8”

4) 您的 PHP 文件也应该使用 utf8 字符集创建

关于php - 如何删除 utf-8 中无法识别的字符? mysql/php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4363020/

相关文章:

windows - gvim 窗口标题中的编码问题

php - 通过 WooCommerce 3.3 中的 Hook 更改产品变化价格

php - 如何在网页中隔离文本用户?

c# - From 子句 ms Access 中的语法错误

mysql - Express.js/Node.js 与 mysql

python - 为什么 locale.strxfrm ("Gè") locale.strxfrm ("Gène")) 的前缀不是 locale "fr_FR.UTF-8"?

MySQL/MySQLDump/phpMyAdmin 忽略字符集

php - 如何使用单个查询从多个mysql表中获取数据

javascript - 如何将 sno 数据按升序插入数据库?

MySQL - 合并两个表 - 有条件