• mysql数据库字符集相关操作(修改表字段编码,使其支持emoji表情)


    普通的UTF8编码是不支持emoji表情插入的,会报异常:

    Caused by: java.sql.SQLException: Incorrect string value: 'xF0x9Fx92xB0xE5x9C...' for column 'name' at row 1

    将表字段的编码单独改成utf8mb4,即可支持emoji表情的插入。

    修改的sql语句为

    mysql> alter table user modify column name varchar(255) character set utf8mb4;

    下面整理了常用的编码相关命令:

    查看数据库默认字符集

    mysql> show variables like 'character%';
    +--------------------------+---------------------------------------------------------+
    | Variable_name            | Value                                                   |
    +--------------------------+---------------------------------------------------------+
    | character_set_client     | utf8                                                    |
    | character_set_connection | utf8                                                    |
    | character_set_database   | utf8                                                    |
    | character_set_filesystem | binary                                                  |
    | character_set_results    | utf8                                                    |
    | character_set_server     | utf8                                                    |
    | character_set_system     | utf8                                                    |
    | character_sets_dir       | C:Program FilesMySQLMySQL Server 5.6sharecharsets |
    +--------------------------+---------------------------------------------------------+
    8 rows in set (0.00 sec)

    修改默认编码

    mysql> set character_set_database=utf8;

    默认编码含义:

      character-set-server/default-character-set:服务器字符集,默认情况下所采用的。

      character-set-client:客户端的字符集。客户端默认字符集。当客户端向服务器发送请求时,请求以该字符集进行编码

      character-set-results:结果字符集。服务器向客户端返回结果或者信息时,结果以该字符集进行编码。

    注:

      1)创建数据库时,除非明确指定,这个数据库的字符集被缺省设定为character_set_server;

      2)选定数据库时,character_set_database 被设定为这个数据库默认的字符集;

      3)在数据库中创建表时,表默认的字符集被设定为 character_set_database;

      4)当在表内新增列时,除非明确指定,否则此列缺省的字符集就是表默认的字符集

    JDBC连接语句

      URL=jdbc:mysql://localhost:3306/abs?useUnicode=true&characterEncoding=字符集

    以指定编码创建数据库

    mysql> CREATE  DATABASE  ms_db  CHARACTER SET  utf8  COLLATE utf8_general_ci;

    查看当前数据库编码

    mysql> status;
    --------------
    C:Program FilesMySQLMySQL Server 5.6inmysql.exe  Ver 14.14 Distrib 5.6.35, for Win64 (x86_64)
    
    Connection id:          12
    Current database:       mysql
    Current user:           root@localhost
    SSL:                    Not in use
    Using delimiter:        ;
    Server version:         5.6.35-log MySQL Community Server (GPL)
    Protocol version:       10
    Connection:             localhost via TCP/IP
    Server characterset:    utf8
    Db     characterset:    utf8
    Client characterset:    utf8
    Conn.  characterset:    utf8
    TCP port:               3306
    Uptime:                 47 min 12 sec
    
    Threads: 11  Questions: 1811  Slow queries: 0  Opens: 112  Flush tables: 1  Open tables: 101  Querie
    s per second avg: 0.639
    --------------

    修改指定数据库编码

    mysql> alter database mydb character set utf-8;

    查看表的编码(建表语句)

    mysql> show create table user;

     查看表结构(完整的列属性)

    mysql> show full columns from User;
  • 相关阅读:
    Use MusicBrainz in iOS(三)查询专辑的完整信息
    内存寻址一(分段)
    POJ 1018 Communication System (动态规划)
    利用Eclipse中的Maven构建Web项目(二)
    cocos2d-x2.2.3学习
    (排序算法整理)NEFU 30/32
    POJ 1066 昂贵的聘礼
    2014年腾讯暑假实习软件开发笔试题汇总
    Android学习之——自己搭建Http框架(1)
    C 语言之预处理 ---------文件包括
  • 原文地址:https://www.cnblogs.com/wenhui92/p/6951605.html
Copyright © 2020-2023  润新知