Mysql存储过程内中文乱码,如何处理
问题如下:在mysql自带的test数据库中创建如下测试表t3:
CREATE TABLE `t3` (
`name` varchar(33) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
name字段的字符集也是utf8,再创建下述存储过程addname:
CREATE DEFINER=`root`@`%` PROCEDURE `addname`()
BEGIN
#Routine body goes here...
insert into t3 VALUES ('测试');
END
通过ODBC数据源连接该数据库,将链接的字符集设为gb2312,通过应用程序调用此数据源来访问mysql,调用存储过程addname(),出现错误Data too long for column 'name' at row 1
出错原因:gb2312的链接在理解存储过程的'测试' 认为是gb2312编码,再插入到t3的name字段上时有个隐式转化,从gb2312编码转为utf8编码。(可能是这个原因,目前做测试还不能肯定就是它)
解决途径:
让gb2312一开始就用为'测试' 是utf8编码,将存储过程改为以下:
CREATE DEFINER=`root`@`%` PROCEDURE `addname`()
BEGIN
#Routine body goes here...
insert into t3 VALUES (convert(_utf8'测试' using utf8));
END
经测试该方法通过。
分享到:
相关推荐
### 在DELPHI中使用MyDAC连接MySQL数据库时中文显示乱码的解决方法 #### 背景介绍 在软件开发过程中,特别是涉及到多语言环境的应用程序开发时,字符编码问题常常成为开发者需要解决的一个重要问题。对于使用...
总的来说,解决C#操作MySQL中文乱码问题的关键在于保持从数据库配置到代码再到文件的整个过程中的编码一致性,使用UTF-8编码,并确保在每个环节都正确地指定和处理。通过以上步骤,你应该能够成功地避免中文乱码问题...
总之,解决MySQL中的汉字乱码问题需要从多个层面进行检查和调整,确保字符集在整个数据处理链路中的一致性。理解字符集和编码的概念,以及它们在MySQL中的应用,对于避免和解决这类问题至关重要。
在使用Java应用程序与MySQL数据库交互的过程中,常常会遇到一个令人头疼的问题:中文字符在存储到数据库时出现乱码现象。这种现象通常发生在使用JDBC(Java Database Connectivity)连接数据库,并进行数据插入操作...
数据库是我们软件开发中一个非常重要的组成部分,以前小编使用的是SQL Server,没有遇到过存储的中文是乱码的情况,后来在ssh的项目中使用的是MySQL的项目,遇到了乱码的问题,只要向数据库中存储中文数据会是...
MySQL 是一款广泛应用的关系型数据库管理系统,它在数据存储、管理和处理方面有着出色的表现。然而,在实际使用过程中,我们可能会遇到两个常见的问题:远程访问限制和中文乱码显示。这两个问题的解决方法是多方面的...
以下是解决hibernate与MySQL存储中文时出现乱码问题的详细步骤和相关知识点: 1. **配置Hibernate连接URL**: 在`hibernate.cfg.xml`配置文件中,需要正确设置连接URL以指定字符集。添加`useUnicode=true`和`...
4. 数据传输过程中编码转换错误:在网络传输或程序处理过程中,字符集转换不正确,也可能导致乱码。 三、解决MySQL乱码的方法 1. 设置全局字符集:通过`ALTER SERVER`或`my.cnf`配置文件更改MySQL服务器的默认字符...
MySQL数据库系统中文乱码问题是指在使用MySQL数据库系统时,中文字符在存储、传输和显示过程中出现乱码的问题。这种问题的出现是由于字符集和编码方式的不兼容所致。 在数据库设计和开发中,字符集和编码方式的选择...
MySQL数据库在处理中文字符时,有时会出现乱码问题,这主要与字符集设置不正确有关。本文将深入探讨MySQL中文乱码问题的原因、解决方法,以及如何在创建数据库和表时避免这类问题。 首先,我们要了解字符集的概念。...
通过以上步骤,我们可以有效地解决在JSP+MySQL开发过程中遇到的中文乱码问题。正确设置MySQL的字符集和校对集是关键,同时还需要注意整个应用程序环境的一致性,才能确保中文字符能够正确地存储和显示。希望本文提供...
本问题涉及到SQL Server访问MySQL数据库时遇到的字符编码问题,导致中文显示为乱码。以下是对这个问题的详细分析和解决方法。 首先,问题的核心在于字符编码不匹配。SQL Server和MySQL可能使用了不同的字符集来处理...
在MySQL 5.6中遇到中文乱码问题,通常是由于字符集配置不正确导致的。字符集决定了数据库如何存储和显示非英文字符,尤其是对于中文这样的多字节字符集而言,正确的配置至关重要。以下是解决MySQL 5.6中文乱码问题的...
在尝试过程中发现,对于某些数据,使用`_latin1`(即ISO-8859-1)可以成功处理中文。 5. **理解字符集转换**: - 当数据在不同的系统、程序或文件之间传递时,必须确保编码的一致性。如果编码方式不同,就需要在...
在使用 MySQL 数据库处理中文数据时,经常会遇到一个让人头疼的问题——中文乱码。中文乱码不仅影响用户体验,还可能导致数据丢失或者错误,因此解决这个问题至关重要。 **出现乱码的原因** 多数情况下是由于 MySQL...
在 MySQL 中,如果数据库、表或字段的字符集配置不正确,存储和检索中文数据时也可能出现乱码。解决这个问题的方法是在数据库连接字符串中指定正确的字符集,例如: ```java String url = "jdbc:mysql://server/...
MySQL数据库在进行备份时,经常会遇到一个问题:当数据库中的数据包含非ASCII字符,特别是中文字符时,如果数据库的默认字符集是GBK,而备份文件是以UTF-8编码保存的,那么在查看或恢复这些备份文件时,注释部分可能...