Php 字符编码问题
我需要将其保存到数据库(mysql)中并显示出来。(我的数据库是utf\U general\U ci) 我αцIцvisibłłIєαIц--- IαМαs Iρŧŧαsŧxygє--- IαłiviłgiŧЋwłdƒyєaєz IαМαwαysŧŧєŧєţєєłρŧЋєz--- 我忙得不可开交 IαŧЋєєєwЋøcαєz--- Iłvєєєsєєŧa ugЋIЋg 我是阿尔摩托·沃索托·沃索托·沃索托·沃索托·沃索托·沃索托·沃索托·沃索托·沃索托·沃索托 我是阿尔法·乌格·布希奇 我αłʼnŧIŧyŧЋЋЋŧŧs--- Iłøvєŧŧŧαłł--- IłvєŧЋsЋaє--- 我αМєαdyŧøgøαy wЋєє--- Iłvєƙy buŧdЋa vєwiєgs- 我是瓦努克·努克·努克·努克·努克·努克·努克·努克·努克·努克·努克·努克·努克·努克·努克·努克--- Iαєviłbuŧŧdєvił--- 我不知道--- IαМƒułøvièg--- 苏摩洛·伊摩洛·维摩洛·贝摩洛·阿摩洛--- Iłłvєŧłłivє--- 然而,当数据被保存和检索时,这就是我得到的 Ã�LLøÃ��Ã��Ã��Ã��à ¸£â�¥â�� Ãïïïï½ï&iqPhp 字符编码问题,php,mysql,character-encoding,Php,Mysql,Character Encoding,我需要将其保存到数据库(mysql)中并显示出来。(我的数据库是utf\U general\U ci) 我αцIцvisibłłIєαIц--- IαМαs Iρŧŧαsŧxygє--- IαłiviłgiŧЋwłdƒyєaєz IαМαwαysŧŧєŧєţєєłρŧЋєz--- 我忙得不可开交 IαŧЋєєєwЋøcαєz--- Iłvєєєsєєŧa ugЋIЋg 我是阿尔摩托·沃索托·沃索托·沃索托·沃索托·沃索托·沃索托·沃索托·沃索托·沃索托·沃索托 我是阿尔法·乌格·布希奇 我αłʼn
需要帮忙吗?是否需要更改数据库的排序规则或一些能够处理此问题的PHP函数?我必须向您介绍Joel的文章。本文解释了什么是字符编码,为什么使用它们,以及如何管理它们
很明显,您的数据包含大量来自不同领域的Unicode字符,因此您必须了解PHP和MySql如何处理字符编码(在您的配置中),以及要调用哪些函数以确保在正确的时间正确翻译编码。您粘贴的示例(不正确)数据表明某些地方确实存在编码不匹配。我必须向您指出Joel的文章标题。本文解释了什么是字符编码,为什么使用它们,以及如何管理它们
很明显,您的数据包含大量来自不同领域的Unicode字符,因此您必须了解PHP和MySql如何处理字符编码(在您的配置中),以及要调用哪些函数以确保在正确的时间正确翻译编码。粘贴的示例(不正确)数据表明某些地方确实存在编码不匹配。您需要使用“SET NAMES utf8”以确保服务器使用UTF-8字符集发回结果。例如:
$dbconn = mysql_connect("localhost", "user", "pass") or die(mysql_error());
mysql_select_db('database', $dbconn) or die(mysql_error());
mysql_query("SET NAMES 'utf8'");
您需要使用“SET NAMES utf8”来确保服务器使用UTF-8字符集发回结果。例如:
$dbconn = mysql_connect("localhost", "user", "pass") or die(mysql_error());
mysql_select_db('database', $dbconn) or die(mysql_error());
mysql_query("SET NAMES 'utf8'");
确保MySQL
MySQL\u查询(“设置名称'utf8'”)运行code>进行数据传输,然后确保每个页面都发送一个UTF-8标头
header('Content-Type:text/html;charset=utf-8')代码>
此外,阅读本书,仔细检查所有内容,并对其进行一些检查,以确保其工作正常。而你在每一页上加载
最后,确保浏览器安装了要使用的字符集,因为一些新的字符集(如Chrome)不会自动使用某些字符集。但是,它们都使用UTF-8,所以请确保发送该标头 确保MySQLMySQL\u查询(“设置名称‘utf8’”)运行code>进行数据传输,然后确保每个页面都发送一个UTF-8标头
header('Content-Type:text/html;charset=utf-8')代码>
此外,阅读本书,仔细检查所有内容,并对其进行一些检查,以确保其工作正常。而你在每一页上加载
最后,确保浏览器安装了要使用的字符集,因为一些新的字符集(如Chrome)不会自动使用某些字符集。但是,它们都使用UTF-8,所以请确保发送该标头 要使用特殊字符而不出现编码问题,请尝试遵循以下4条规则:
使用utf8\u general\u ci排序规则在db上创建字段
进行mysql_查询(“SET NAMES'utf8';”);任何连接后(您需要mysql 5)
将meta字符集utf8标记放入html头块
在不使用utf8_encode或其他函数的情况下,将字符串读写到db和html
此文本来自。要使用特殊字符而不存在编码问题,请尝试遵循以下4条规则:
使用utf8\u general\u ci排序规则在db上创建字段
进行mysql_查询(“SET NAMES'utf8';”);任何连接后(您需要mysql 5)
将meta字符集utf8标记放入html头块
在不使用utf8_encode或其他函数的情况下,将字符串读写到db和html
此文本来自。请尝试以下步骤:
确保所有数据库字段都已设置为存储UTF-8数据(utf8\u general\u ci
)
连接到数据库后,执行以下查询:设置名称“utf8”代码>
将.php文件保存为不带BOM的UTF-8,这样您就可以轻松更改(在状态栏上)文件的编码,只需选择UTF-8 Plain
但是,如果您从用户处接收数据(通过GET、POST或COOKIE参数),您可能需要遵循以下步骤
另外,关于以下元标记:
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
您只需要这些来显示UTF-8数据,它不会干扰存储过程,当然使用它也不会有什么坏处。=) 尝试以下步骤:
确保所有数据库字段都已设置为存储UTF-8数据(utf8\u general\u ci
)
连接到数据库后,执行以下查询:设置名称“utf8”代码>
将.php文件保存为不带BOM的UTF-8,这样您就可以轻松更改(在状态栏上)文件的编码,只需选择UTF-8 Plain
但是,如果您正在从用户处接收数据(通过GET、PO),那么这应该是可行的