您在这里混的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(内部标签):

PHP(在文件顶部,在任何输出之前):

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

mysqli_set_charset($conn, "utf8"); /* Procedural approach / $conn->set_charset("utf8"); / Object-oriented approach / 这是针对的mysqli_,还有与mysql_*和PDO 类似的(请参见此答案的底部)。

还要确保将数据库和表设置为UTF-8,您可以像这样进行操作:

ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci; ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; (任何已存储的数据都不会转换为正确的字符集,因此您需要使用干净的数据库来执行此操作,如果字符损坏则需要在执行此操作后更新数据)。

如果使用json_encode(),则可能需要应用该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_unicode_ci,请参见UTF-8:常规?斌吗 Unicode?。

注意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');来源:stack overflow

mysql 表情符号 用什么类型_mysql如何存储表情符号相关推荐

  1. mysql数据库邮箱什么类型_MySQL的数据类型介绍

    MySQL的数据类型介绍 发布时间:2020-06-01 20:57:09 来源:亿速云 阅读:154 作者:鸽子 由于Mysql独有的特性和实现细节对性能的影响是很明显的,因为做好Mysql数据库的 ...

  2. mysql中的double类型_MySQL中float、double、decimal三个浮点类型的区别与总结!

    作者:极客小俊 一个专注于web技术的80后 我不用拼过聪明人,我只需要拼过那些懒人 我就一定会超越大部分人! CSDN@极客小俊,原创文章, B站技术分享 个人博客: cnblogs.com 前端h ...

  3. mysql日期对应java类型_Mysql与Java日期类型

    java中的日期类型 java.util.Date java.util.Calendar java.sql.Date java.sql.Time java.sql.Timestamp 注:后三种都继承 ...

  4. mysql 人名用什么类型_MySQL 基础(二)

    封面图片来源:沙沙野 01. DDL 数据定义语言 1). 创建表的基本语法 CREATE TABLE 表名( 字段名1 数据类型 约束规则, 字段名2 数据类型, 字段名3 数据类型, ..... ...

  5. mysql几种索引类型_Mysql几种索引类型的区别及适用情况

    如大家所知道的,Mysql目前主要有以下几种索引类型:FULLTEXT,HASH,BTREE,RTREE. 那么,这几种索引有什么功能和性能上的不同呢? FULLTEXT 即为全文索引,目前只有MyI ...

  6. 数组在mysql中是什么类型_MySQL 中的数据类型介绍

    1.概述 要了解一个数据库,我们也必须了解其支持的数据类型. MySQL支持所有标准的SQL数据类型,主要分3类: 数值类型 字符串类型 时间日期类型 另一类是几何数据类型,用的不多,也没多介绍.  ...

  7. mysql mediumint是什么类型_MySQL中数值类型中smallint、mediumint等区别是什么 - 晓雨网...

    MySQL 支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型 数值类型中又可以分为整型.浮点型,或者可以说为严格数值数据类型以及近似数值数据类型 分别为 tinyint(m).sm ...

  8. mysql四个字符串类型_mysql的数据类型4---字符串类型

    mysql中的字符串类型包括char.varchar.blob.text.enum.set类型 1.char和varchar类型: 字符串类型(M),其中M值得是所占用的字符数,varchar中是M+ ...

  9. mysql存储文件用什么类型_块存储、文件存储、对象存储的区别是什么?

    块存储: 需要实现Linux的Block Device的接口或者QEMU提供的Block Driver接口.提供随机读写,可以像使用物理硬盘一样格式化并建立文件系统来使用块存储,块存储可用于绝大部分通 ...

最新文章

  1. 第二十七课.深度强化学习(二)
  2. redis成长之路——(一)
  3. 百度广告点击软件_网络营销百问百答之64,如何提升企业百度广告点击率
  4. php生成图片验证码-附五种验证码
  5. linux 命令行模式自动登录,实现linux的自动登录--命令行模式启动
  6. 性能测试分析与调优原理
  7. 自动生成小学四则运算题目
  8. linux设置默认终端模拟器,ubuntu终端默认设置_在Ubuntu Linux上设置默认终端模拟器...
  9. html table control,HtmlTable.HtmlTableRowControlCollection
  10. 模糊综合评价模型 ——第四部分,三级模糊综合评价模型应用:例题5,陶瓷厂六种产品销量的评判
  11. 【效率特工队】一款神器,批量手机号码归属地查询最新软件,可导出excel表格,支持全面号段
  12. Unity3D 智能巡逻兵
  13. 熟悉继承(java)
  14. java 主动模式 port_详解SpringBoot修改启动端口server.port的四种方式
  15. 通过js实现图片爆炸特效
  16. (专升本)PowerPoint(设置幻灯片的动画效果)
  17. RTKlib相对定位源码解析: udstate函数
  18. springmvc自定义参数解析器
  19. python数据分析:会员数据化运营(中)——RMF分析
  20. 生产环境SLB-F5会话保持失效问题排查及总结

热门文章

  1. Win10下安装 [双系统Ubuntu18.04](图文步骤)
  2. python scapy实现ARP欺骗与DNS欺骗
  3. 执行python命令和脚本文件_执行python脚本文件的方法
  4. python学不会怎么办_学Python很久都学不会,技术大牛教你打开它的正确方式
  5. Microsoft AppLocale 实用程序
  6. 默认打开电池电量百分比显示
  7. 回顾第七周多行星星图
  8. python 网页中插入自己的图片
  9. 计算机 黑屏 显示桌面,电脑进入系统后黑屏,教您电脑进入系统后黑屏怎么解决...
  10. 一个简易二维Minecraft——MBC