Php ÆØØ在MySQL中无法正确显示

Php ÆØØ在MySQL中无法正确显示,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,我在phpMyAdmin摆了一张桌子。我没有更改字符集或任何东西。我在新行中插入了一个文本,当我尝试选择该行并用PHP输出它时,字母ÆØ显示为���, 但是,如果我尝试在phpMyAdmin中编辑该字段,则会正确显示字母。我做错了什么,phpMyAdmin做得对吗 SET NAMES 'charset_name' 首先,您需要确定是浏览器字符集出错,还是mysql出错。 尝试将浏览器中的字符集交换为utf8,或者如果它已经是iso-8859 如果这不能解决问题,请尝试通过执行以下操作来更改查询

我在phpMyAdmin摆了一张桌子。我没有更改字符集或任何东西。我在新行中插入了一个文本,当我尝试选择该行并用PHP输出它时,字母ÆØ显示为���, 但是,如果我尝试在phpMyAdmin中编辑该字段,则会正确显示字母。我做错了什么,phpMyAdmin做得对吗

SET NAMES 'charset_name'

首先,您需要确定是浏览器字符集出错,还是mysql出错。 尝试将浏览器中的字符集交换为utf8,或者如果它已经是iso-8859

如果这不能解决问题,请尝试通过执行以下操作来更改查询中的字符集

SET CHARACTER SET charsetname;

首先,您需要确定是浏览器字符集出错,还是mysql出错。 尝试将浏览器中的字符集交换为utf8,或者如果它已经是iso-8859

如果这不能解决问题,请尝试通过执行以下操作来更改查询中的字符集

SET CHARACTER SET charsetname;

如果您的PHP文件已经是UTF-8编码的,您应该告诉您的数据库,您需要UTF-8。与其摆弄MySQL的配置,不如告诉您的连接对象,您希望使用哪个字符集,其余的由数据库来完成

以下是mysqli连接对象的示例:

$db = new mysqli($dbHost, $dbUser, $dbPw, $dbName);
$db->set_charset("utf8");

之后,您的查询将返回UTF-8编码的结果。

如果您的PHP文件已经是UTF-8编码的,您应该告诉您的数据库,您需要UTF-8。与其摆弄MySQL的配置,不如告诉您的连接对象,您希望使用哪个字符集,其余的由数据库来完成

以下是mysqli连接对象的示例:

$db = new mysqli($dbHost, $dbUser, $dbPw, $dbName);
$db->set_charset("utf8");


之后,查询将返回UTF-8编码的结果。

表/列的字符集是什么,PHP中使用的字符集是什么?这听起来像是数据库或客户端正在使用不包含这些字符的字符集。我遇到了一些类似的问题。当我从我的应用程序上传带有这些字符的文本时,它们似乎没有被添加到我的SQL表中。MySQL连接排序:utf8_general_ci。表排序:latin1_swedish_ciHTML:您的表/列的字符集是什么,您在PHP中使用的字符集是什么?这听起来像是数据库或客户端正在使用不包含这些字符的字符集。我遇到了一些类似的问题。当我从我的应用程序上传带有这些字符的文本时,它们似乎不会被添加到我的SQL表中。MySQL连接排序规则:utf8\U general\U ci。表排序规则:latin1\U swedish\U ciHTML:将“charset\u name”替换为您正在使用的字符集,例如:SET NAMES utf8;您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解使用“SET NAMES”utf8附近的正确语法,将“charset_name”替换为您正在使用的字符集,例如:SET NAMES utf8;您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解在“SET NAMES”UTF8附近使用的正确语法。这确实有效!我看到它是utf8,但是为什么在phpMyAdmin中没有utf8作为排序规则的替代品呢?我该如何正确地执行此操作?我想首先正确保存数据会更好吗?对速度有什么影响吗?@霍格沃茨的学生-排序规则并不决定字符串的存储方式,它只决定两个字符串的比较方式——至少我是这样理解的。是的,我现在正在阅读。嗯,为什么他们不能像我们在HTML:UTF-8…@Student of Hogwarts中那样拥有一个主字符集呢?我自己对此并不完全确定。当我在phpMyAdmin中创建一个新数据库并为db选择排序规则utf8\U unicode\U ci时,db的导出将包含默认的CHARSET=utf8 COLLATE=utf8\U unicode\U ci,因此我假设它确实与CHARSET UTF-8一起存储。不过,为客户端PHP连接对象设置字符集是另一回事,应该独立于服务器的任何默认设置.Mm,因此最好还是正确设置MySQL,因为这总是需要使用æå。这确实有效!我看到它是utf8,但是为什么在phpMyAdmin中没有utf8作为排序规则的替代品呢?我该如何正确地执行此操作?我想首先正确保存数据会更好吗?对速度有什么影响吗?@霍格沃茨的学生-排序规则并不决定字符串的存储方式,它只决定两个字符串的比较方式——至少我是这样理解的。是的,我现在正在阅读。嗯,为什么他们不能像我们在HTML:UTF-8…@Student of Hogwarts中那样拥有一个主字符集呢?我自己对此并不完全确定。当我在phpMyAdmin中创建一个新数据库并为db选择排序规则utf8\U unicode\U ci时,db的导出将包含默认的CHARSET=utf8 COLLATE=utf8\U unicode\U ci,因此我假设它确实与CHARSET UTF-8一起存储。将字符集设置为
r客户端PHP连接对象是另一回事,应该独立于服务器的任何默认设置。Mm,因此最好还是正确使用MySQL,因为这总是需要使用æå。