栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

MySQL和MySQL:带有西里尔字母的UTF

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL和MySQL:带有西里尔字母的UTF

您在这里混的API,

mysql_*
并且
mysqli_*
不混合。您应该坚持使用
mysqli_
(无论如何看起来还是这样),因为
mysql_*
不赞成使用函数,并且在PHP7中将其完全删除了。

您的实际问题是某个地方的字符集问题。这里有一些指针可以帮助您为应用程序获取正确的字符集。这涵盖了开发PHP / MySQL应用程序时可能会遇到的 大多数
一般问题。

  • *您整个应用程序中的 *所有 属性都必须设置为UTF-8
  • 将文档另存为UTF-8(不带BOM)(如果您使用的是Notepad ++,则为
    Format
    ->
    Convert to UTF-8 w/o BOM
  • PHP和HTML中的标头都应设置为UTF-8

    • HTML (内部

      <head></head>
      标签):

          <meta charset="UTF-8">
    • PHP (在文件顶部,在任何输出之前):

          header('Content-Type: text/html; charset=utf-8');
  • 连接到数据库后,将连接对象的字符集设置为UTF-8,如下所示(直接在连接之后)

    mysqli_set_charset($conn, "utf8"); 

    $conn->set_charset(“utf8”); / Object-oriented approach /

这是针对的

mysqli_*
,还有与
mysql_*
和PDO 类似的(请参见此答案的底部)。

  • 还要确保将数据库和表设置为UTF-8,您可以像这样进行操作:
    ALTER DATAbase databasename CHARACTER SET utf8 COLLATE utf8_unipre_ci;

    ALTER TABLE tablename ConVERT TO CHARACTER SET utf8 COLLATE utf8_unipre_ci;

(任何已存储的数据都不会转换为正确的字符集,因此您需要使用干净的数据库来执行此操作,如果字符损坏则需要在执行此操作后更新数据)。

  • 如果使用
    json_enpre()
    ,则可能需要应用该
    JSON_UNESCAPED_UNICODE
    标志,否则它将特殊字符转换为等效的十六进制字符。

请记住, 一切 的代码需要被设置为UFT-8的整条管线,否则你可能在你的应用体验破字。

除了此列表之外,可能还有一些具有用于指定字符集的特定参数的函数。手册将告诉您这一点(例如

htmlspecialchars()
)。

还有一些针对多字节字符的特殊功能,例如:

strtolower()
不会降低多字节字符,因为您必须使用它
mb_strtolower()
,请参见此
实时演示

注1
:请注意,其某处标记为

utf-8
(带破折号),某处标记为(无破折号
utf8
)。重要的是要知道什么时候使用,因为它们通常是不可互换的。例如,HTML和PHP需要
utf-8
,而MySQL则不需要。

注2
:在MySQL中,“字符集”和“排序规则”不是同一回事,请参见编码和排序规则之间的区别?。两者都应设置为utf-8;通常排序规则应为

utf8_general_ci
utf8_unipre_ci
,请参见UTF-8:常规?斌吗
Unipre?。

注意3 :如果您使用表情符号,则需要在数据库和连接中使用

utf8mb4
字符集而不是standard 来指定MySQL
utf8
。HTML和PHP将只有
UTF-8


使用

mysql_
和PDO 设置UTF-8

  • PDO:这是在对象的DSN中完成的。注意该

    charset
    属性,

    $pdo = new PDO("mysql:host=localhost;dbname=database;charset=utf8", "user", "pass");
  • mysql_
    :这样做非常类似于
    mysqli_*
    ,但是它没有将连接对象作为第一个参数。

    mysql_set_charset('utf8');


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/368978.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号