zoukankan      html  css  js  c++  java
  • 数据库之插入数据时和读取数据时编码转换原理和乱码出现的原因

    插入数据时和读取数据时编码转换原理如图所示

    (我设置客户端传入和传回编码是一回事---这是告诉连接器的,客户端具体给什么编码和以什么方式解读是另一回事,不一致就会出现插入失败和乱码)

    乱码时的两种情况:

    1.我设置客户端传入编码是utf8,连接器utf8,服务器utf8
          但客户端传入gbk编码的汉字,将GBK认为是utf8的过程压根就会出错,如果检验不严格也可能通过,但会出现数据丢失(后来再读出时也出现乱码情况)

    2.我设置传回客户端的编码是utf8,连接器从服务器中读出数据转换成utf8传回客户端,但是客户端将utf8的编码认为是GBK编码解读从而出现乱码

    ------------------------------------------------------

    网页设置为utf8编码,传入应该没有问题,mysql客户端编码是gbk所以会插入失败,传回汉字时时乱码(将传入和传回设为gbk就行了)
    总结:这两种情况都是客户端说话不算话造成的,实际传入编码和设置不一致,解读方式和设置传回编码不一致。

    -------------------------------------------------------------------------------------------------------------------------------------------------

    *.连接器设置为latin1,客户端传入设置为gbk,给的也是gbk编码,设置传回为gbk,以GBK编码解读,但会出现乱码
    这是由于编码大的兼容小的,gbk编码多,latin1编码少,所以会丢失数据造成乱码
    总结:编码空间大小==> 服务器>=connection>=client
    *.在mysql客户端中暂时设置编码格式使传入,传回,连接器编码一致可以用set names gbk完成

  • 相关阅读:
    安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置
    各种编程语言的深度学习库整理
    十个开源深度学习框架
    深度学习框架的评估与比较
    Caffe 深度学习框架上手教程
    机器视觉开源代码集合
    人工智能的妙用:谷歌公布图像字幕技术
    谷歌推出最新图像识别工具Google Cloud Vision API
    机器学习常见算法分类汇总
    神经网络的分类及其应用
  • 原文地址:https://www.cnblogs.com/abtious/p/13486576.html
Copyright © 2011-2022 走看看