社区
MySQL
帖子详情
MySQL ,一字段值存的是unicode值,查询出来都是乱码了,求解决方法
khijfv2008
2010-11-22 02:18:23
MySQL ,一字段值存的是unicode值,直接查询都是乱码了,求解决方法
这个值是C++以宽字符写进库里的
有什么看函数二转换或在C#里有什么方法可以把值转回中文
如果有人朋友解决我没及时回复请Mail 1716720@qq.com
...全文
323
24
打赏
收藏
MySQL ,一字段值存的是unicode值,查询出来都是乱码了,求解决方法
MySQL ,一字段值存的是unicode值,直接查询都是乱码了,求解决方法 这个值是C++以宽字符写进库里的 有什么看函数二转换或在C#里有什么方法可以把值转回中文 如果有人朋友解决我没及时回复请Mail 1716720@qq.com
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
khijfv2008
2010-11-25
打赏
举报
回复
要不留个邮箱我把数据文件给你,你试下,网上的找到的方法我都试了
我用的是C#,写入数据人是用C++
C++接口是别人开发的,要是我了解接口怎么实现的我也可以用他的方法解码了,现在我就是不了解
ACMAIN_CHM
2010-11-25
打赏
举报
回复
+--------------+--------------------------+
| nickname | HEX(nickname ) |
+--------------+--------------------------+
| VV- | 0E560E562D |
| U?Q | 1055018051 |
| X=?D0)YX | 15583D84443029590258 |
为什么不同时给出这三记录所对应的实际内容应该是什么?
ACMAIN_CHM
2010-11-24
打赏
举报
回复
都试了哪几种?
还有,要注意你的接口程序中有没有对字符集进行重新转换。
khijfv2008
2010-11-24
打赏
举报
回复
set names 那几种都试过了,,,
ACMAIN_CHM
2010-11-24
打赏
举报
回复
[Quote]但写数据的人提供了接口可以查出来,不是乱码的,[/Quote]关键是要找到正确的字符集,然后你 set names 'xxxx'; 就可以了。
khijfv2008
2010-11-24
打赏
举报
回复
mysql> select nickname, HEX(nickname ) from gs_userinfo_tbl;
+--------------+--------------------------+
| nickname | HEX(nickname ) |
+--------------+--------------------------+
| VV- | 0E560E562D |
| U?Q | 1055018051 |
| X=?D0)YX | 15583D84443029590258 |
| Q?R | 1B51D552 |
| | 20 |
| *s4Yn0???? | 2A7334596E30DD84DD84 |
| A | 41 |
| NgRKN6r | 4E671A524B4E3672 |
| S | 53 |
| a | 61 |
| eg?n?n | 65679C6E9C6E |
| h | 68 |
| p | 70 |
| s | 73 |
| v | 76 |
| wPwP?v*b?VN | 7750775084762A62FE560B4E |
| }v?ec?k?=\ | 7D76E56563886B883D5C |
| ?u?rKN?[? | AF75C2724B4E8C5B8E7F |
| ?r?P?vAml | C272B2508476416D136C |
| ??í??[ | CE98ED8BD25B |
| ????v?[k? | DE98D47F8476B35B6B86 |
+--------------+--------------------------+
21 rows in set (0.02 sec)
因为数据是别人写进去的,所以我不知道写进去的时候是什么样子,但写数据的人提供了接口可以查出来,不是乱码的,
ACMAIN_CHM
2010-11-24
打赏
举报
回复
你的表中的字符集设置是 latin1 ,这样显然,你插入的中文会被转换成latin1 编码来存放。如果你INSERT的时候设置也是latin1 则没有什么问题,但如果你INSERT的时候设置的是其它字符集则会产生编码的转换,从而导致乱码。
99%的可能是,你现在数据库表中存储的本身就是乱码了。
找一条记录SELECT出来,看看实现的编码是什么。
select nickname, HEX(nickname ) from gs_userinfo_tbl where user_id =12345677;
然后把这条记录所对应的中文也贴出来。
另外你的C++程序中使用的字符集设置是什么?建议你在你的程序中执行一下 show VARIABLES like 'character_set%';看看结果是什么?
wwwwb
2010-11-24
打赏
举报
回复
你的字符集不统一,不知道你表中的内容是latin1、GBK、UTF8,
估计你要在统一的字符集下重新插入记录
select hex(有中文内容的字段名) from tt
贴结果,
khijfv2008
2010-11-24
打赏
举报
回复
这个方法试过,行不通
khijfv2008
2010-11-24
打赏
举报
回复
试过了的
wwwwb
2010-11-24
打赏
举报
回复
你的表字符集是latin1
SET NAMES latin1
khijfv2008
2010-11-24
打赏
举报
回复
mysql> show full columns from gs_userinfo_tbl;
+----------+-------------+-------------------+------+-----+---------+-------+---------------------------------+---------+
| Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment |
+----------+-------------+-------------------+------+-----+---------+-------+---------------------------------+---------+
| user_id | varchar(32) | latin1_swedish_ci | NO | PRI | | | select,insert,update,references | |
| nickname | varchar(32) | latin1_bin | YES | UNI | NULL | | select,insert,update,references | |
+----------+-------------+-------------------+------+-----+---------+-------+---------------------------------+---------+
2 rows in set (0.00 sec)
khijfv2008
2010-11-24
打赏
举报
回复
mysql> show create table gs_userinfo_tbl;
+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| gs_userinfo_tbl | CREATE TABLE `gs_userinfo_tbl` (
`user_id` varchar(32) NOT NULL DEFAULT '',
`nickname` varchar(32) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
PRIMARY KEY (`user_id`),
UNIQUE KEY `nickname` (`nickname`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-----------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
ACMAIN_CHM
2010-11-24
打赏
举报
回复
其它检查结果呢?
khijfv2008
2010-11-24
打赏
举报
回复
mysql> show variables like 'char%'
-> ;
+--------------------------+---------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.1\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set (0.00 sec)
wwwwb
2010-11-23
打赏
举报
回复
show VARIABLES like 'character_set%';
贴结果
huabing84
2010-11-23
打赏
举报
回复
SET NAMES GBK
ACMAIN_CHM
2010-11-22
打赏
举报
回复
估计,你的字段中存放的并不是UTF8的编码。
ACMAIN_CHM
2010-11-22
打赏
举报
回复
按下贴中方法,贴出你的检查结果。
http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
MySQL 中文显示乱码
khijfv2008
2010-11-22
打赏
举报
回复
以上方法好像不通呀,还有别的可行方法不
加载更多回复(4)
mysql
乱码
解决
方法
【
MySQL
乱码
解决
方法
】 在使用
MySQL
数据库与PHP配合开发网站时,有时会遇到
乱码
问题,这通常是由于字符集设置不一致导致的。以下是一些常用的
解决
方法
: 1. **配置数据库环境**: - 在使用工具如ZendStudio或...
在DELPHI中使用MyDAC连接
MySQL
数据库时中文显示
乱码
的
解决
方法
### 在DELPHI中使用MyDAC连接
MySQL
数据库时中文显示
乱码
的
解决
方法
#### 背景介绍 在软件开发过程中,特别是涉及到多语言环境的应用程序开发时,字符编码问题常常成为开发者需要
解决
的一个重要问题。对于使用...
MySql
乱码
问题
解决
方法
本篇文章将深入探讨
MySQL
乱码
问题的原因,并提供一系列详细的
解决
方法
。 1. **问题原因** - **编码不匹配**:数据库、表、
字段
的字符集设置与输入数据的编码不一致。 - **传输过程中的编码转换**:数据在传输过程...
C#
mysql
插入数据,中文
乱码
的
解决
方法
针对这个问题,本文将详细探讨两种
解决
C#操作
MySQL
时中文
乱码
的
方法
。 首先,我们要明白字符编码的基本概念。UTF-8是一种广泛使用的
Unicode
字符编码,它可以表示世界上几乎所有的字符。而GBK或GB2312是中国大陆常用...
mysql
中文
乱码
解决
方案
###
MySQL
中文
乱码
解决
方案 在使用
MySQL
数据库的过程中,可能会遇到中文显示
乱码
的问题。中文
乱码
问题通常是由于字符集设置不正确导致的。为了
解决
这个问题,我们需要从多个角度进行排查与
解决
,包括检查系统环境...
MySQL
56,912
社区成员
56,754
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章