zoukankan      html  css  js  c++  java
  • MySQL 字符集问题

    MySQL 支持许多字符集及其编码方案, 甚至是不同编码之间的转换.

    在使用 MySQL 进行应用程序编程时, 常常会出现乱码现象, 这通常是由于客户端没有声明与 MySQL 服务器通信的字符串编码造成的后果.

    解决方案:

    设置变量'character_set_client', 

    查看当前数据库的字符集

     show variables like 'character%'; 

    查看当前数据库的校对规则

     show variables like 'collation%'; 

     请看下面两张图片:

    注意到了吗 ? mysql.exe 在连接到服务器后也是使用命令 SET NAMES 'gbk'; 来设置字符集的!

    显然, 使用 UTF-8 是 MySQL 客户端开发的首选, 但是, Windows 的控制台和 API 使用默认字符集和 UTF-16, 这显然造成了混乱.

    幸运的是, 可以为控制台设置代码页, 以使控制台显示 UTF-8 编码的字符串, 方法是在进程中运行如下代码:

    #include <stdlib.h>

    system("chcp 65001 > NUL");

    然后就可以在控制台窗口中显示 UTF-8 编码的字符串了(阿拉伯文, 泰文等无法正常显示, 原因不明):

    同时, 我们可以将 UTF-8 编码的字符串转化为 UTF-16 或 UTF-32 编码的字符串, 他们之间的转换是基于算法的, 效率非常高.

    总之, UTF-8 在网络中非常常见, 必须熟练运用.

  • 相关阅读:
    leetcode 451 根据字符出现频率排序
    leetcode 1833 雪糕的最大数量
    leetcode 166 Excel表列名称
    877 石子游戏
    01 背包问题
    正则表达式
    leetcode 160 相交链表
    git 备忘录
    leetcode 525 连续数组
    Mysite
  • 原文地址:https://www.cnblogs.com/develon/p/9077367.html
Copyright © 2011-2022 走看看