Php 字符编码问题

Php 字符编码问题,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

我需要将其保存到数据库(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øÃ��Ã��Ã��Ã��à ¸£â�¥â�� Ãïïïï½ï&iq


需要帮忙吗?是否需要更改数据库的排序规则或一些能够处理此问题的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'”)进行数据传输,然后确保每个页面都发送一个UTF-8标头

header('Content-Type:text/html;charset=utf-8')

此外,阅读本书,仔细检查所有内容,并对其进行一些检查,以确保其工作正常。而你在每一页上加载


最后,确保浏览器安装了要使用的字符集,因为一些新的字符集(如Chrome)不会自动使用某些字符集。但是,它们都使用UTF-8,所以请确保发送该标头

确保MySQL
MySQL\u查询(“设置名称‘utf8’”)进行数据传输,然后确保每个页面都发送一个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),那么这应该是可行的