zoukankan      html  css  js  c++  java
  • [mysql]支持emoji(字符集问题)!

    问题的根源

    主要问题就是在字符集,一般解决这种问题都是靠试验。我实验了一通,得出的结论和大家分享一下(如有错误,还望指正):

    1. 数据库的字符集
    2. 数据库连接的字符集

    配置方法

    1. 设置数据库的字符集为utf8mb4:创建数据库时(注意:是数据库),指定字符集(charset)和对比算法(collate)CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;,后面再说 collate干嘛的。

    2. 设置数据库连接的字符集为utf8mb4:在建立 mysql 数据库连接时,指定字符集(charset),下面用 pyton 的 pymsql 连接数据库姿势举例:

      import pymysql
      
      params = {
              'host': '127.0.0.1',
              'port': 3306,
              'db': 'xueweihan',
              'user': 'root',
              'password': '',
              'charset': 'utf8mb4'} # set charset
      
      connection = pymysql.connect(**params)

    不同字符集,对比方式(collate)也不一样,所以需要指定对比的规则,utf8mb4_unicode_ci就是utf8mb4字符集对应的对比规则。比方说字符集为utf8mb4数据库,执行 sql 语句: select * from boy where name='xueweihan',就需要用指定的collate规则,来过滤数据库中的纪录。

    使用姿势

    创建数据库: CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

    连接数据库:

    import pymysql
    
    params = {
            'host': '127.0.0.1',
            'port': 3306,
            'db': 'xueweihan',
            'user': 'root',
            'password': '',
            'charset': 'utf8mb4'} # set charset
    
    connection = pymysql.connect(**params)

    

  • 相关阅读:
    149. Max Points on a Line(js)
    148. Sort List(js)
    147. Insertion Sort List(js)
    146. LRU Cache(js)
    145. Binary Tree Postorder Traversal(js)
    144. Binary Tree Preorder Traversal(js)
    143. Reorder List(js)
    142. Linked List Cycle II(js)
    141. Linked List Cycle(js)
    140. Word Break II(js)
  • 原文地址:https://www.cnblogs.com/chun6/p/6135964.html
Copyright © 2011-2022 走看看