Php MySQL uft8_unicode_ci

Php MySQL uft8_unicode_ci,php,mysql,utf-8,character-encoding,phpmyadmin,Php,Mysql,Utf 8,Character Encoding,Phpmyadmin,我想确定写了什么东西 我的数据库表是utf8\uUnicode\uCI,我的站点编码和头是utf-8等等 我做了一个测试,并在我的留言簿中输入了以下内容: á ʵßăāÇϢϞﻨ☺ ▓ ▓ẻ ▓ẻṎ ۞ ݤ á ʵßăāÇϢϞﻨ☺ ▓ ▓ẻ ▓ẻṎ ۞ ݤ 现在,它在网页上显示得很好,就像它应该显示的一样,我测试了其他语言,等等,但在phpmyadmin中选中此项后,它在phpmyadmin的文本字段值区域中显示为: á ʵßăÄÇϢϞﻨ☺ â–“ â–“

我想确定写了什么东西

我的数据库表是utf8\uUnicode\uCI,我的站点编码和头是utf-8等等

我做了一个测试,并在我的留言簿中输入了以下内容:

á ʵßăāÇϢϞﻨ☺ ▓ ▓ẻ ▓ẻṎ ۞ ݤ á ʵßăāÇϢϞﻨ☺ ▓ ▓ẻ ▓ẻṎ ۞ ݤ 现在,它在网页上显示得很好,就像它应该显示的一样,我测试了其他语言,等等,但在phpmyadmin中选中此项后,它在phpmyadmin的文本字段值区域中显示为:

á ʵßăÄÇϢϞﻨ☺ â–“ ▓ẻ ▓ẻṎ Ûž ݤ á ʵßăÄÇϢϞﻨ☺ â–“ ▓ẻ ▓ẻṎ Ûž ݤ 有人能告诉我为什么在phpmyadmin中会这样显示吗?我的意思是它是这样存储的,它是正常的还是应该像我键入的那样存储?它也发生在所有的外语上,比如汉语等。基本上所有的外语

我检查了一下以确保在phpmyadmin中它说:

MySQL连接排序规则:utf8\U unicode\U ci 和 MySQL字符集:UTF-8 Unicode(utf8)


可能是phpmyadmin?如果是,我必须做些什么才能让phpmyadmin正确显示utf-8,或者是MySQL没有正确存储它,尽管它在输出到网页时显示良好。

不,它不是phpmyadmin。它一直在使用utf-8

PHP应用程序中的DB连接本身可能不使用UTF-8。虽然从一端传输到另一端的字节是相同的,但它们是使用错误的字符集编码和解码的,即平台默认字符集,根据字符模式,很可能是ISO-8859-1(UTF-8对/三元组的第一个字符通常变成
Ã
Ä
等)

您需要让PHP通知MySQL您正在使用UTF-8数据:

mysql_set_charset("utf8");

请注意,这只适用于PHP>=5.2.3和MySQL>=5.0.7,否则您需要执行
设置名称
查询,另请参阅前面链接的PHP手册。还请注意,您需要截断数据库并用新数据重新填充数据库,如果不使用SQL脚本将其转换回来,您将无法在网页上重新显示它。

Hi在将数据插入数据库的mysql\u查询之前,您已经给出了什么,但仍然没有显示rite。此外,我认为我不需要像phpmyadmin显示的那样指定:mysql连接排序规则:utf8\U unicode\U ci和mysql字符集:UTF-8 unicode(utf8)不知道为什么它不能工作?谢谢如果PHP端的任何东西看起来“正确”,但DB端没有,那么这确实是唯一可能的原因(除非PhpMyAdmin本身有一些bug,但没有想到这一点,但是您应该检查它的响应头以确保安全).你看过我后来添加的两个注释了吗?嘿,对不起,我犯了一个小错误。我自动编写了
UTF-8
,但它应该是
utf8
(MySQL在这方面可能非常严格)。再试一次。嗨,BalusC,我的MySQL版本来自phpmyadmin:MySQL客户端版本:5.0.51a,我也不知道你的意思“还要注意,您需要截断数据库并用新数据重新填充数据库,如果不使用SQL脚本将其转换回来,您将无法在网页上重新显示它“谢谢我很高兴你的帮助,每个人都很友好,都很支持我!谢谢!他们已经设置好了这个字符集。@日本
utf8\u unicode\u ci
是一个排序规则,而不是字符集。字符集是
utf8
@col对了,我会更正它,顺便说一句,我的意思是同样的。