zoukankan      html  css  js  c++  java
  • MySql 中文乱码处理

    通过MySql.Data.dll向MySql发生Sql时如果sql语句中存在中文,那么发送的MySql服务器时就会变成乱码。

    因为MySQL处理连接时,外部连接发送过来的SQL请求会根据以下顺序进行转换:

    character_set_client           //客户连接所采用的字符集
    |
    character_set_connection  //MySQL连接字符集
    |
    character_set_database    //数据库所采用的字符集(表,列)
    |
    character_set_results        //客户机显示所采用的字符集

    产生乱码的根本原因在于:
    1.客户机没有正确地设置client字符集,导致原先的SQL语句被转换成connection所指字符集,而这种转换,是会丢失信息的,如果client是utf8格式,那么如果转换成gb2312格式,这其中必定会丢失信息,反之则不会丢失。一定要保证connection的字符集大于client字符集才能保证转换不丢失信息。
    2. 数据库字体没有设置正确,如果数据库字体设置不正确,那么connection字符集转换成database字符集照样丢失编码,原因跟上面一样。

    解决办法:

    1. 将服务端mysql.ini 中default-character-set设置为utf8。

    default-character-set=utf8

    2. 在带中文的Sql语句前加上

    set names 'utf8';

    这样就不会出现乱码了。

  • 相关阅读:
    C++ allocator
    C++操作符重载
    Theron (C++ concurrency library) 读后感
    第五章 [BX]和loop指令
    第四章 第一个程序
    第三章 寄存器(内存访问)
    第二章 寄存器
    第一章
    jquery下ajax异步执行操作笔记
    CSSFlex布局
  • 原文地址:https://www.cnblogs.com/philzhou/p/3038884.html
Copyright © 2011-2022 走看看