`

mysql插入中文问题

 
阅读更多

记忆力不好了,转来的记录下

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

参考: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)

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

分享到:
评论

相关推荐

    MYSQL插入中文解决方法

    MYSQL插入中文解决方法是MYSQL中的一种常见问题,解决该问题需要对MYSQL的字符集进行修改。在MYSQL中,默认的字符集是Latin1,但这种字符集不支持中文字符,导致插入中文时出现乱码问题。为了解决这个问题,我们需要...

    Mysql插入中文乱码问题解决

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

    PHP向mysql插入中文乱码问题,php文件内容写入数据库!

    以下将详细分析并解决PHP向MySQL插入中文乱码问题,以及如何正确处理PHP文件内容写入数据库。 首先,我们需要确保数据库的编码设置正确。MySQL数据库通常使用UTF-8编码,因此创建数据库和表时应指定`CHARACTER SET ...

    Mysql的longblob字段插入数据问题解决

    在使用mysql的过程中,有个问题就是mysql的优化,mysql中longblob字段在5.5版本中默认的为1M。 想改变这个问题,需要注意几点: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (2054817 > ...

    java插入mysql中文乱码解决

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

    mysql 插入中文读取中文无乱码 2

    在MySQL数据库中处理中文字符时,可能会遇到插入和读取中文数据出现乱码的问题。这个问题通常是由于字符编码不一致导致的。以下是一些关键知识点,帮助你理解和解决MySQL中文乱码问题。 1. **字符集与编码** - **...

    mysql中文乱码问题

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

    Mysql中文汉字转拼音的实现(每个汉字转换全拼)

    在MySQL中实现中文汉字转拼音的功能,主要是为了方便在数据库查询和数据分析时处理中文文本,尤其是在没有全文索引或者需要进行复杂模糊匹配时。以下是一个简单的实现方法,它利用自定义函数来完成这一任务。 首先...

    mysql插入数据中文报错问题,最全解决方式

    通过上述步骤,可以有效地解决MySQL插入中文数据时遇到的字符集不匹配问题,确保数据能够被正确地存储和读取。此外,为了预防类似问题再次发生,建议定期检查数据库及相关应用的字符集设置,确保它们之间的一致性。

    JSP MySQL插入数据时出现中文乱码问题的解决方法.docx

    在 JSP 应用程序中,使用 MySQL 数据库时,插入中文数据可能会出现乱码问题。这种问题的产生是因为客户端和服务器端的字符集编码不一致所导致的。解决这个问题需要了解 MySQL 的字符集编码机制。 MySQL 中有六处...

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

    文件中给出的SQL错误示例展示了当尝试插入中文字符到未正确配置的列时可能出现的问题。例如,错误代码`1366`表示字符串值不符合列的字符集设置。这进一步强调了确保字符集设置正确的重要性。 ### 总结 在处理MySQL...

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

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

    Mysql中解决中文无法插入的解决方案

    在MySQL数据库中,遇到中文无法插入的问题通常是由于字符集设置不正确导致的。这涉及到数据库、表以及字段的字符集配置。以下是一些详细的解决步骤和相关知识点: 1. **字符集基础**: - 字符集(Character Set)...

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

    在使用C#与MySQL数据库进行交互时,遇到中文乱码问题是一个常见的困扰。尤其是在插入包含中文字符的数据时,如果处理不当,数据可能会显示为问号或者其他不可读的字符。这通常是因为字符编码不一致导致的。针对这个...

    mysql插入记录防止乱码

    在使用MySQL数据库的过程中,特别是在处理中文等非ASCII字符时,可能会遇到数据插入后显示为乱码的情况。这种情况不仅影响数据的正确读取,还可能导致用户界面呈现异常。本文将详细介绍如何在MySQL中插入记录时避免...

    mysql插入数据库编码解决

    在处理MySQL数据库插入中文数据时,经常遇到编码问题导致乱码。这主要是由于不同环节的编码不一致所造成的。以下是两种解决方法,适用于普通Web项目和Struts框架的项目。 ### 方法一:普通Web项目 #### 1. 页面...

    JSP MySQL插入数据时出现中文乱码问题的解决方法

    总结一下,解决JSP MySQL插入数据时中文乱码的问题,可以采取以下步骤: 1. 使用SQL命令临时更改字符集: ```sql SET NAMES gbk; ``` 这个命令会更改当前会话的字符集为GBK,适用于临时会话。 2. 修改MySQL...

    解决 docker mysql 中文乱码问题

    使用 docker 启动 mysql 容器可能会出现中文乱码的情况,这里记录如何制作支持中文的 mysql 镜像 docker版本:18.06 mysql 版本:5.7 1. 创建 my.cnf 文件 [client] default-character-set=utf8 [mysql] default-...

    mysql8中文参考手册.pdf

    MySQL 8中文参考手册.pdf MySQL 8是关系数据库管理系统的最新版本,它提供了强大且灵活的数据存储和管理功能。本手册详细介绍了MySQL 8的安装、配置、管理和优化等方面的知识点。 安装和配置 MySQL 8提供了多种...

Global site tag (gtag.js) - Google Analytics