zoukankan      html  css  js  c++  java
  • Mysql错误问题记录

    ① Incorrect string value: 'xE6x94xBExE5xA4xA7...' for column 'name' at row 1 Query……

    原因:编码不匹配。数据库是latin1编码,而插入的中文字符串是utf-8编码。

    解决思路:

    一、修改数据库的编码。

    这个解决办法一劳永逸,省去大量的编码转换工作。需要配置数据库配置参数如下:

    打开数据库配置文件my.ini(Windows)或者/etc/my.cnf(Linux)。

    修改或者增加如下参数:

    在 [mysql]  标签下加上一行

    default_character_set = utf8

    在 [mysqld] 标签下加上三行

    default_character_set = utf8

    character_set_server = utf8

    collation_server = utf8_general_ci

    init_connect = 'SET collation_connection = utf8_general_ci'

    init_connect = 'SET NAMES utf8' 

    在 [mysql_server]标签下加上一行

    default_character_set = utf8

    在 [mysqld_safe]标签下加上一行

    default_character_set = utf8

    在 [client]标签下加上一行

    default_character_set = utf8

    二、转换插入的中文字符编码。

    假设插入中文字符串srcStr,需要转换成如下字符串:

    String insertStr = new String(srcStr.getBytes("utf-8"),"iso-8859-1");

    这种思路在取出字符串时需要再转换一次编码,所以推荐第一种解决办法。

    PS:其实转换的时候遇到另外一个问题,就是HttpServletRequest打印出来的编码格式是utf-8,实际转换编码的时候用的是gb2312……有人知道这是为什么吗?

  • 相关阅读:
    [luogu2059 JLOI2013] 卡牌游戏 (概率dp)
    [luogu1772 ZJOI2006] 物流运输 (最短路 线性dp)
    [luogu 2568] GCD (欧拉函数)
    [poj 2976] Dropping tests (分数规划 二分)
    cf掉分记——Avito Code Challenge 2018
    新博客的第一篇博文~
    [noip2011 luogu1312] Mayan游戏(模拟)
    bzoj2618 [Cqoi2006]凸多边形
    LLppdd never give up!
    我的scoi2018
  • 原文地址:https://www.cnblogs.com/yoyotl/p/5180260.html
Copyright © 2011-2022 走看看