zoukankan      html  css  js  c++  java
  • Mysql数据库乱码与编码问题筛查

    最近接连遇到数据库编码问题,让你的系统本来像个美丽的姑娘却忽然发现她不识字一样难受,其实很多时候是编码的问题,而mysql(特别地)设计编码的地方很多,在这里做一个筛查:

    1 mysql编码

    用下面的命令可以查看mysql当前的各种默认编码:

    showvariables like 'character\_set\_%'; 可以看到目前mysql的默认编码;

    showvariables like 'collation_%';

    my.cnf中设置对应的编码:

    [client]

    default-character-set=utf8

    [mysqld]

    collation_server = utf8_general_ci

    character_set_server = utf8

    [mysql]

    default-character-set=utf8

    [mysqldump]

    default-character-set=utf8

    2 数据库编码

    CREATE DATABASE IF NOT EXISTS my_db DEFAULT CHARSET utf8COLLATE utf8_general_ci;

    3. 数据表编码

    /*!40101SET @saved_cs_client     =@@character_set_client */;

    /*!40101SET character_set_client = utf8 */;

    CREATETABLE `access` (

      `id` int(8) unsigned NOT NULL AUTO_INCREMENT,

      `role_id` smallint(6) unsigned NOT NULL,

      `node_id` smallint(6) unsigned NOT NULL,

      PRIMARY KEY (`id`),

      KEY `nodeId` (`node_id`)

    )ENGINE=MyISAM AUTO_INCREMENT=364 DEFAULTCHARSET=utf8;

    /*!40101 SET character_set_client = @saved_cs_client */;

    4. 转存的时候

    有时候需要转存数据库,但是好好的数据库转到新库就乱码了,你可能需要:

    #mysqldump --default-character-set utf8 -u root -pmypass mydb> mydb.sql

    5. 查询的时候

    有时候,虽然mysql、数据库、数据表以及导出的数据sql文件编码都没问题,但是query出来仍然出现乱码,可能是因为,在query的时候也需要设置编码,函数名称大同小异,在php+mysql中是:

    mysql_query('set names utf8');

    以上。

  • 相关阅读:
    常用业务接口界面化 in python flask
    git命令中带有特殊符号如@
    生成唯一标识 字符串跟时间戳的结合
    MD5 in JAVA
    修改(同步)linux时间
    jenkins 从git拉取代码
    Git 默认不区分大小写
    postman也可以使用F12功能
    Session
    WebXML部署服务
  • 原文地址:https://www.cnblogs.com/riskyer/p/3341724.html
Copyright © 2011-2022 走看看