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类时,我添加了一个新行在每个页面上运行该查询,现在一切都很好。现在,另一个问题来了:是否可以设置某种默认值,这样我就不需要一直运行集合名称了?这就是解决方案。谢谢!