字符集出现错误解决办法
出现的问题:
mysql> update users
-> set username='关羽'
-> where userid=2;
ERROR 1366 (HY000): Incorrect string value: '\xB9\xD8\xD3\xF0' for column 'usern
ame' at row 1
向表中插入中文字符时,出现错误。
mysql> select * from users;
+--------+----------+
| userid | username |
+--------+----------+
| 2 | ???? |
| 3 | ???? |
| 4 | ?í?ù |
+--------+----------+
3 rows in set (0.00 sec)
表中的中文字符位乱码。
解决办法:
使用命令:
mysql> status;
--------------
mysql Ver 14.12 Distrib 5.0.45, for Win32 (ia32)
Connection id: 8
Current database: test
Current user: root@localhost
SSL: Not in use
Using delimiter: ;
Server version: 5.0.45-community-nt MySQL Community Edition (GPL)
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: latin1
Db characterset: latin1
Client characterset: gbk
Conn. characterset: gbk
TCP port: 3306
Uptime: 7 hours 39 min 19 sec
Threads: 2 Questions: 174 Slow queries: 0 Opens: 57 Flush tables: 1 Open ta
bles: 1 Queries per second avg: 0.006
--------------
查看mysql发现Server characterset,Db characterset的字符集设成了latin1,所以出现中文乱码。
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| users |
+----------------+
1 row in set (0.00 sec)
更改表的字符集。
mysql> alter table users character set GBK;
Query OK, 3 rows affected (0.08 sec)
Records: 3 Duplicates: 0 Warnings: 0
查看表的结构:
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
分享到:
相关推荐
本文将详细介绍如何解决“MySQL修改字符集默认问题”,包括修改步骤、注意事项以及可能遇到的问题及其解决方案。 ### 一、理解MySQL字符集 在深入探讨修改字符集的方法之前,我们首先需要了解MySQL中的字符集概念...
4. **升级MySQL版本**:部分早期版本可能存在已知的字符集兼容性问题,升级至最新版本可以解决这些问题。 #### 七、结论 在使用MySQL数据库时,正确理解和配置字符集至关重要。通过合理选择字符集和调整相关配置,...
本文将深入探讨MySQL中的字符集配置以及如何解决相关乱码问题。 1. **MySQL字符集架构** - **服务器字符集** (`character-set-server`/`default-character-set`): 这是MySQL服务器的默认字符集,用于决定未明确...
### MySQL运行SQL语句中文乱码问题的解决方法 在MySQL数据库中运行包含中文字符的SQL语句时,经常会遇到中文显示为乱码的问题。这一现象不仅降低了开发效率,还可能导致数据错误。本文将详细介绍如何彻底解决MySQL...
在处理MySQL数据库时,遇到无法插入或显示中文字符的问题是常见的技术挑战,这通常与字符集设置不正确有关。从给定的文件信息来看,主要关注的是如何在MySQL中正确处理中文字符,包括插入和显示中文。下面将详细探讨...
总之,解决MySQL中文乱码问题的关键在于确保所有环节的字符集设置一致且兼容中文。从数据库、表、连接到客户端工具,都需要仔细检查和调整,以确保正确处理中文字符。如果以上方法无效,可能需要检查更深层次的系统...
MySQL查询字符集不匹配问题通常出现在数据库、数据表或字段的字符集与应用程序(如网页)使用的字符集不一致时,导致数据无法正确存储或检索,尤其是涉及非ASCII字符(如中文)时。本篇文章将深入探讨这个问题,并...
MySQL 错误 1366 解决方案 - 无法输入...通过设置 MySQL 数据库的字符集为 UTF-8,可以解决无法输入中文的问题。同时,我们也了解了 UTF-8 字符集的重要性和作用。希望本文能够帮助读者解决 MySQL 错误 1366 的问题。
- 如果前两种方法都无法解决问题,可以考虑修改 MySQL 的配置文件 `my.ini` 来全局设置字符集。 1. 打开 MySQL 的安装目录,找到 `my.ini` 文件。 2. 在 `[client]`、`[mysqld]` 和 `[mysql]` 节中分别添加或修改...
解决Linux环境下MySQL中文乱码问题的方法主要集中在调整字符集设置上。具体步骤如下: 1. **编辑my.cnf配置文件**: - 使用文本编辑器打开`/etc/my.cnf`文件(在某些发行版中可能是`/etc/mysql/my.cnf`)。 - 在`...
综上所述,解决MySQL中文乱码问题通常涉及多个层面,需要综合考虑服务器、客户端、数据库、连接和查询结果的字符集设置。根据具体情况,选择合适的方法进行调整和配置。在进行数据迁移或跨平台操作时,特别要注意...
解决这类问题的关键在于正确配置MySQL的字符集。 #### 二、字符集简介 1. **GB2312**:这是一种早期的中文字符集标准,主要支持简体中文,包含了6763个汉字以及682个符号。 2. **GBK**:它是GB2312的扩展,兼容GB...
标题中的“完美转换MySQL的字符集 解决查看utf8源文件中的乱码问题”涉及到的是在MySQL数据库中处理字符编码转换的问题,特别是针对从不同字符集(如GBK或Latin1)转换到UTF8的情况,以解决乱码问题。描述中提到的...
总结来说,解决 MySQL 中文乱码问题的关键在于理解字符集的层次结构,包括 server、client、database 和 connection,以及 results。确保这些层级的字符集配置一致且支持中文字符。如果问题依然存在,可能需要检查...
### 在DELPHI中使用MyDAC连接MySQL数据库时中文显示乱码的解决方法 #### 背景介绍 在软件开发过程中,特别是涉及到多语言环境的应用程序开发时,字符编码问题常常成为开发者需要解决的一个重要问题。对于使用...
### Java插入MySQL中文乱码解决 #### 一、问题背景 在使用Java应用程序与MySQL数据库交互的过程中,常常会遇到一个令人头疼的问题:中文字符在存储到数据库时出现乱码现象。这种现象通常发生在使用JDBC(Java ...
MySQL数据库在处理字符集时可能出现乱码问题,这通常是由于编码设置不一致或者不正确导致的。本篇文章将深入探讨MySQL乱码问题的原因,并提供一系列详细的解决方法。 1. **问题原因** - **编码不匹配**:数据库、...
本文将深入探讨MySQL字符集的基本概念,字符集设置,以及常见的问题与解决方案。 首先,我们要理解字符集和字符序的基本概念。字符是语言中表达意义的最小单位,如英文的'A'或'B'。编码则是将字符映射到特定数值的...