phpMyAdmin中带有UTF-8排序规则的拉丁字符

phpMyAdmin中带有UTF-8排序规则的拉丁字符,php,encoding,phpmyadmin,collation,utf-8,Php,Encoding,Phpmyadmin,Collation,Utf 8,我的网站使用: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> 这个元: <meta http-equiv="Content-Type" content="text/html;

我的网站使用:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 

这个元:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

我在phpMyAdmin中创建了数据库和表,确保所有内容都设置为utf8\uUnicode\uCI(表、字段、数据库),甚至连接排序规则

当我使用PHP制作的标准表单向数据库中插入一些拉丁字符(重音、ñ等)时,效果很好,我可以在我的网站中显示保存的数据,这没有问题。但是如果我去phpMyAdmin,所有的拉丁字符都是乱七八糟的,就像“ñ”一样

如果我试图在phpMyAdmin中修复该数据,那么我的网站会错误地显示数据,并使用奇怪的符号���.

我到底做错了什么?我花了几个小时试图解决这个问题,但没有成功


谢谢大家!

正如@Artefactor所说,这可能是phpMyAdmin的一个局部问题

如果phpMyAdmin正常(即设置为UTF-8),并且数据仍然显示得很奇怪,那么请查看您的数据库连接是否也使用UTF-8

mysql_query("SET NAMES utf8") 
(或用作数据库库的任何内容)
如果不是,可能会有帮助。

如果phpMyAdmin显示的是
而不是
ñññ
,那是因为它将UTF-8 ByTestStream解释为ISO-8859-1。因此,您的数据库内容可能是正确的,phpMyAdmin只是以错误的方式显示它们


我不熟悉该应用程序,但您可以强制浏览器以UTF-8格式读取页面(通常是查看>编码>UTF-8)。

对于Scuzzu的问题,有几种方法:

我会有八个不同的任务,但这个网站是阻止我保存他们更多的链接


“作为一种防止垃圾邮件的机制,新用户在执行
mysql\u查询(“SET names'utf8';”)后最多只能发布一个超链接”

您还需要转到mySQL并将排序规则定义为UTF-8! 这应该能解决你的问题。 祝你好运

1-编辑文件:

my.ini(MsWindos)
my.cnf(GNU/linux)

2-查找[mysqld]条目并追加:

  character-set-server = utf8
  skip-character-set-client-handshake
整个视图应该如下所示:

[mysqld]
  port=3306
  character-set-server = utf8
  skip-character-set-client-handshake
3-重新启动MySQL服务

mysql\u查询(“SET NAMES utf8”)解决了我的问题

问题:在phpMyAdmin中正确显示字符,在HTML/PHP中错误显示字符。字符:–、î等

标题是ok(utf8),phpmyadmin以正确的形式显示内容,但网站一直显示奇怪的问号字符(在黑色菱形字符内)

HTML代码:


解决方案:我在php中添加了(在任何其他查询之前):

mysql\u查询(“SET NAMES utf8”)

其他原因可能导致这种行为;这只是解决方案的一部分。您可能需要检查内容类型、web服务器配置(httpd.conf)、html lang/dir、charset等。但是,黑钻石中的问号似乎更适合此问题/解决方案,在其他情况下,会显示2-3个奇怪的字符,而不是您想要的字符。

如果phpMyAdmin正常(即设置为UTF-8)数据仍然显示得很奇怪,然后看看您的数据库连接是否也使用UTF-8

mysql_query("SET NAMES utf8") 
只需设置
mysql\u查询(“set NAMES utf8”)
mysql\u连接
行之后:

$con = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die(mysql_error());
    mysql_query("SET NAMES utf8");

我也遇到了同样的问题,最终找到了一种通过PHP函数
mysqli\u set\u charset
检查和更改排序规则的优雅方法。在
$conn
检查和
$sql
查询之间必须包含以下代码:

if (!mysqli_set_charset($conn, "utf8")) {
    printf("Error loading character set utf8: %s\n", mysqli_error($conn)); //optional row
    die();
}

我在这里找到了解决方案:

我尝试将Google Chrome和Firefox编码更改为UTF-8,但没有成功。phpMyAdmin仍在显示奇怪的符号(是的,我重新启动了浏览器)。@Danny这是phpMyAdmin首页上的一个设置(“语言”设置。你在那里选择语言和编码。)好的,我在两台服务器上尝试了这个,两台服务器的行为都一样。我的phpMyAdmin主页设置为MySQL字符集:UTF-8 Unicode(utf8)。在插入之前,我尝试通过utf8_decode()传递表单中的所有值,我可以在phpMyAdmin中看到一切正常,但在我的网站中看不到,这意味着phpMyAdmin是一个可怕的问题。然而,为什么我可以从WordPress安装中读取数据并保存为UTF-8,而不是从我自己的网站中读取数据?是的,我运行了查询,但一切都保持不变。佩卡,我做得都错了。所以,当我实例化我的MySQL类时,我添加了一个新行在每个页面上运行该查询,现在一切都很好。现在,另一个问题来了:是否可以设置某种默认值,这样我就不需要一直运行集合名称了?这就是解决方案。谢谢!