zoukankan      html  css  js  c++  java
  • MySQL 编码

    编码的种类


    SHOW VBRIABLES LIKE '%character%';

    1) character_set_client : MySQL Server 假定client传输数据过来的时候的编码

    2) character_set_connection: Server收到SQL语句时,将其转换成的编码

    3) character_set_results: Server在返回数据给客户端时,会将数据转成这个编码

    4) character_set_system: 元数据编码(表名, 列名等)

    5) character_set_server, character_set_database, character_set_table, character_set_column: MySQL默认的 服务器/数据库/表/列 编码, 优先级由低到高, 就是表编码可覆盖库编码,列编码可覆盖表编码

    校对集种类

    collation是字符的排序规则,就是字符之间比较大小的规则,例如utf8_general_ci表示的就是按照utf8编码且忽略大小写来排序,MySQL在排序时会将两个比较字符先转化为相同的编码,如果出现编码不兼容,则会抛出错误.

    关于 SET NAMES 和 SET CHARACTER SET


    SET NAMES 'ENCODING' 是设置以上编码的命令,它影响的编码包括:character_set_client, character_set_connection, character_set_results, collation_connection

    SET CHARACTER SET 'ENCODING' 影响的编码包括:character_set_client, character_set_results

    简而言之 SET NAMES 会影响Server的编码和解码, 而 SET CHARACTER SET 只会影响Server的解码

    如果说我们使用latin1打开一个连接,然后将set names utf8,则会出现问题,因为这会使得服务器认为客户端传入数据是utf8编码,而实际上使用的确实latin1

    所以最好的解决策略是同意所有的解码和编码规则

    下面是MySQL编码修改的方法

    编辑/etc/mysql/my.cnf

    在[client]节点下添加
    default-character-set=utf8
    在[mysqld]节点下添加
    character-set-server=utf8
    collation-server=utf8_general_ci

    重启mysql服务

    service mysql restart 即可

    进入mysql,查看编码

    show variables like "character%";

    可以看到已经改好

  • 相关阅读:
    JavaScript-创建日志调试对象(面向对象实例)
    公有属性 公有方法(原型方法) 私有属性 私有方法 特权方法 静态属性 静态方法 对象字面量创建
    JS库创建
    无post按钮提交表单
    当浏览器窗口大小改变时,设置显示内容的高度
    单元测试(qunit)
    HTML定位(滚动条、元素,视口)定位
    document.compatMode(判断当前浏览器采用的渲染方式)
    jquery自定义方法
    jQuery选择器总结
  • 原文地址:https://www.cnblogs.com/jthb/p/3885217.html
Copyright © 2011-2022 走看看