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……有人知道这是为什么吗?

  • 相关阅读:
    42、lucene和机器学习进行全文搜索,并排序
    41、javaMail机制
    40、dom以xml结尾的文件
    39、重新复习js之三
    38、重新复习javascript之三
    36、重新复习html和css之二
    35、重新复习html与css(1)
    34、Shiro框架入门三,角色管理
    33、插入一段大学学的计算机,正儿八经的计算机图形学
    32、shiro框架入门3.授权
  • 原文地址:https://www.cnblogs.com/yoyotl/p/5180260.html
Copyright © 2011-2022 走看看