`
housheng33
  • 浏览: 238593 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql 不能插入中文和显示中文

阅读更多

http://blog.sina.com.cn/s/blog_48f0f4da0100cktq.html

 

一)不能显示中文解决办法:

参考:http://bbs3.chinaunix.net/thread-880131-1-1.html

1:windows平台,因为windows操作系统默认的是用了gb2312这个字符,而mysql在安装的时候,

  默认的是客户端和服务器都用了latin1,所以这就导致一个字符集和字符校验不匹配的问题,

  这个时候只需要找到mysql的配置文件my.ini 找到default-character_set ,把他的参数改

  成gb2312就可以了,一共有两个这样的参数,一个是对客户的,一个是服务器的,我一般建

  议是把服务器的设置成国际通用的字符utf8。
  2: linux平台,在linux平台上安装mysql的时候,给于的自由度是很大的,你可以在安装

  选项./configure中找到数据库的字符设置(这个还要麻烦你自己看readme安装文件 ),这个时

  候最好是把字符设置成gbk,因为这个字符集也是linux平台默认安装的中文字符集,然后

  在/etc下找到my.cnf文件(这个文件在安装mysql后要自己把他转移到/etc/下,除非你是

  rpm安装).需要注意的是linux里的很多工具都是不支持中文的,哪怕是vi,你可以在startx

  后执行命令kwrite,来编译文件,这个图形变异软件有一个选项是可以把你所写的东西转换

  成任意的字符集,很不错,

 

二)不能插入中文解决办法:

参考:http://blog.csdn.net/ancky_zhang/archive/2008/10/15/3078540.aspx

查看表的结构:
  mysql> show create users;
  ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
  corresponds to your MySQL server version for the right syntax to use near 'users
  ' at line 1
  mysql> show create table users;
  +-------+-----------------------------------------------------------------------
  ------------------------------------------------------------------------------+
  | Table | Create Table
  |
  +-------+-----------------------------------------------------------------------
  ------------------------------------------------------------------------------+
  | users | CREATE TABLE `users` (
  `userid` int(11) default NULL,
  `username` char(20) character set latin1 default NULL
  ) ENGINE=InnoDB DEFAULT CHARSET=gbk |
  +-------+-----------------------------------------------------------------------
  ------------------------------------------------------------------------------+
  1 row in set (0.00 sec)

  mysql> desc users;
  +----------+----------+------+-----+---------+-------+
  | Field | Type | Null | Key | Default | Extra |
  +----------+----------+------+-----+---------+-------+
  | userid | int(11) | YES | | NULL | |
  | username | char(20) | YES | | NULL | |
  +----------+----------+------+-----+---------+-------+
  2 rows in set (0.02 sec)

  这时向表中插入中文然后有错误。
  mysql> insert into users values(88,'中文');
  ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4' for column 'usern
  ame' at row 1
  mysql> insert into users values(88,'中文');
  ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4' for column 'usern
  ame' at row 1

  还要更改users表的username的字符集。
  mysql> alter table users modify username char(20) character set gbk;
  ERROR 1366 (HY000): Incorrect string value: '\xC0\xEE\xCB\xC4' for column 'usern
  ame' at row 1
  mysql> alter table users modify username char(20) character set gbk;
  ERROR 1366 (HY000): Incorrect string value: '\xC0\xEE\xCB\xC4' for column 'usern
  ame' at row 1

  因为表中已经有数据,所以更改username字符集的操作没有成功
  清空users表中的数据
  mysql> truncate table users;
  Query OK, 3 rows affected (0.01 sec)

  从新更改user表中username的字符集
  mysql> alter table users modify username char(20) character set gbk;
  Query OK, 0 rows affected (0.06 sec)
  Records: 0 Duplicates: 0 Warnings: 0

  这时再插入中文字符,插入成功。
  mysql> insert into users values(88,'中文');
  Query OK, 1 row affected (0.01 sec)

  mysql> select * from users;
  +--------+----------+
  | userid | username |
  +--------+----------+
  | 88 | 中文 |
  +--------+----------+
  1 row in set (0.00 sec)

 

 

 

 

windows平台只要在my.ini文件中设置
[client]
default-character-set=gbk
[mysqld]
character-set-server=utf8 
就okay了,除此之外,命令下的任何更改都是无效的。
本人的测试是这样,client编码若设置为gbk,即使你在create database or table 的时候,修改编码也是无效的。

分享到:
评论

相关推荐

    mysql 不能插入中文和显示中文,不能显示中文解决办法

    在处理MySQL数据库时,遇到无法插入或显示中文字符的问题是常见的技术挑战,这通常与字符集设置不正确有关。从给定的文件信息来看,主要关注的是如何在MySQL中正确处理中文字符,包括插入和显示中文。下面将详细探讨...

    mysql_不能插入中文的解决办法

    在插入中文数据时,我们需要使用正确的字符集来避免乱码。例如: ``` mysql> INSERT INTO mytable (id, username) VALUES (1, '张三'); ``` 在查询中文数据时,我们也需要使用正确的字符集来避免乱码。例如: ```...

    mysql-不能插入中文的解决办法.pdf

    MySQL 中文插入解决办法 ...在本文中,我们学习了如何解决 MySQL 不能插入中文的问题,并了解了 MySQL 命令行工具和 SQL 语句的使用方法。同时,我们还学习了权限控制的机制,以便更好地管理和保护我们的数据库。

    mysql-不能插入中文的解决办法.docx

    总之,解决MySQL插入中文乱码问题的关键在于确保数据库、表、列以及客户端之间的字符集设置一致且支持中文。通过调整这些设置,可以确保中文数据的正确存储和显示。同时,理解字符集的概念对于处理多语言环境下的...

    java插入mysql中文乱码解决

    4. **SQL语句编码问题**:直接通过SQL语句插入中文时,如果SQL语句的编码与数据库的编码不一致,也会引发乱码问题。 5. **客户端配置**:有时,客户端的系统编码设置也可能影响数据的正确显示。 #### 三、解决方案...

    Mysql插入中文乱码问题解决

    ### MySQL 插入中文乱码问题详解与解决方案 #### 一、问题背景及原因分析 在使用 MySQL 数据库处理中文数据时,经常会遇到一个让人头疼的问题——中文乱码。中文乱码不仅影响用户体验,还可能导致数据丢失或者错误...

    mysql_不能插入中文的解决办法.pdf

    ### MySQL 不能插入中文的解决办法 在使用MySQL数据库的过程中,有时会遇到无法正确插入中文字符的问题。这通常是由于字符集设置不当所导致的。本文将详细介绍如何通过修改MySQL的字符集来解决这一问题,并提供一些...

    mysql_不能插入中文的解决办法.docx

    ### MySQL 不能插入中文的解决办法 在使用MySQL数据库的过程中,可能会遇到无法插入中文字符的问题。这通常是由于字符集设置不当导致的。本文将详细介绍如何通过调整MySQL的字符集来解决这一问题,并提供一系列基本...

    mysql 不能插入中文问题

    ### MySQL 不能插入中文问题详解 #### 问题现象 在使用 MySQL 5.5 版本进行数据操作时,部分用户遇到了无法将中文字符插入到数据库表中的问题。具体表现为尝试插入包含中文字符的数据行时,系统抛出如下错误: ``...

    MYSQL在WINDOWS下中文显示的解决办法

    完成以上步骤后,你应该可以在MySQL中成功存储和显示中文字符了。插入和查询数据时,中文应该能正常处理,不会出现乱码问题。请记住,对于不同的应用和环境,可能还需要对其他配置进行调整,例如调整数据库连接字符...

    mysql中文乱码问题

    如果数据库的编码方式不是 utf8, 那么在插入中文数据时就会出现乱码问题。 解决 MySQL 中文乱码问题的方法 解决 MySQL 中文乱码问题的方法其实很简单。首先,我们需要检查 MySQL 服务器的编码方式,可以使用...

    C# mysql 插入数据,中文乱码的解决方法

    尤其是在插入包含中文字符的数据时,如果处理不当,数据可能会显示为问号或者其他不可读的字符。这通常是因为字符编码不一致导致的。针对这个问题,本文将详细探讨两种解决C#操作MySQL时中文乱码的方法。 首先,...

    MySQL中文参考手册.chm

    MySQL中文参考手册.chm 449kb <br/>0 译者序 1 MySQL的一般的信息 1.1 什么是MySQL? 1.2 关于本手册 1.2.1 本手册中使用的约定 1.3 MySQL的历史 1.4 MySQL的主要特征 1.5...

    解决mysql不能插入中文Incorrect string value

    ### 解决MySQL无法插入中文问题:“Incorrect string value” 在日常使用MySQL数据库的过程中,有时我们会遇到一个常见的问题——无法向数据库中插入中文字符,并且会收到错误提示“Incorrect string value”。这种...

    mysql中文手册+mysql命令大全+mysql存储过程

    能帮助开发者更高效地进行数据库管理,例如`CREATE DATABASE`用于新建数据库,`SELECT`用于查询数据,`INSERT`用于插入数据,`UPDATE`用于修改数据,`DELETE`用于删除数据,以及`SHOW`系列命令用于显示数据库信息等...

    MySQL数据库 中文设置

    本教程将详述如何避免中文乱码问题,确保数据库、表和列能够正常显示中文内容。 首先,我们需要理解MySQL字符集的概念。字符集(Character Set)是数据库用来表示文本的一组符号和规则,它定义了如何存储和处理字符...

    jsp操作MySQL实现查询 插入 删除功能示例.docx

    jsp 操作 MySQL 实现查询、插入、删除功能示例 jsp 操作 MySQL 实现查询、插入、删除功能示例...该示例展示了使用 jsp 操作 MySQL 实现查询、插入、删除功能的基本步骤和技术细节,为开发者提供了有价值的参考和借鉴。

    MySQL中文编码设置

    如果处理不当,可能会导致中文显示乱码、数据插入失败等问题。本文将深入探讨MySQL中文编码的相关设置,并提供一种有效的解决方案。 #### 一、MySQL中文编码的重要性 在Web应用程序中,特别是针对中文环境的应用...

Global site tag (gtag.js) - Google Analytics