zoukankan      html  css  js  c++  java
  • mysql5 插入乱码问题

    在数据库由4.2升级到5.1.6-comm...之后 都是latin1的默认编码, 以前的程序插入中文乱码 ,以前的写法:在source中加入charset=gb2312,然后在插入前执行set names gb2312即可;

    在网上找了好多文章,除了上面的写法外 ,就是直接更改数据库的设置,但是这个数据库是买的别人的产品 ,不能随便乱动,只好在代码上作文章, 折腾了好久之后 ,得出以下结论与大家共享,

    latin1即是iso8859-1, 所以在插入之前需要将内容转换为iso8859-1, 如下:

    Encoding iso88591 = Encoding.GetEncoding("iso8859-1");
    Encoding df = Encoding.Default;
    
    byte[] gb2312bytes = df.GetBytes(content);
     //byte[] asciiBytes = Encoding.Convert(df, iso88591, gb2312bytes);
    tring str = iso88591.GetString(gb2312bytes);
    

     这样转换之后 ,source中不用加入charset参数 ,程序中也不需要先执行set names **, 即可正常插入

  • 相关阅读:
    强大的异或运算-深度好文
    40-3Sum Closest
    39-Remove Duplicates from Sorted Array
    谈谈AI
    38- Majority Element
    37-Invert Binary Tree
    36-Same Tree
    35-Remove Element
    34. Swap Nodes in Pairs
    33. Implement strStr()
  • 原文地址:https://www.cnblogs.com/taotaonwsuaf/p/3024342.html
Copyright © 2011-2022 走看看