DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: tkzcol
今日帖子: 4
在线用户: 2
导航: 论坛 -> 数据库专区 斑竹:liumazi,waterstone  
作者:
男 wangweic (wangweic) ▲▲▲▲▲ -
普通会员
2013/8/11 3:45:00
标题:
Mysql 插入数据乱码 浏览:1633
加入我的收藏
楼主: 数据里面有韩文,插入数据的sql语句再delphi里面是正常的
使用delphi提交的插入语句,插入后是问号,
用phpMyAdmin执行同样的sql语句,能正确插入


mysql相关设置:
数据库是utf8的编码的
          
| character_set_client     | gbk          
| character_set_connection | gbk          
| character_set_database   | gbk          
| character_set_filesystem | binary          
| character_set_results    | gbk          
| character_set_server     | gbk          
| character_set_system     | utf8          

| character_set_client     | utf8
| character_set_connection | utf8
| character_set_database   | utf8
| character_set_filesystem | binary
| character_set_results    | utf8
| character_set_server     | utf8
| character_set_system     | utf8

这两种字符集相关设置效果一样

希望大家帮看看,多谢了


附 插入的sql语句
此帖子包含附件:wangweic_20138113450.txt 大小:55B
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2013/8/11 8:47:54
1楼: sql.text := utf8encode(yousqltext);
意思就是转成 UTF8 文本。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 wangweic (wangweic) ▲▲▲▲▲ -
普通会员
2013/8/11 13:23:09
2楼: 谢谢 ,还是一样,自动创建一个表,其中中文注释都变成乱码了

表指定了 DEFAULT CHARSET=utf8

再插入前还手动设置了编码
with db.qry_temp do
  begin
    close;
    sql.Text := 'set names utf8;';
    ExecSQL;
  end;

sql也使用了 sql.Text := UTF8Encode(sqlstr);

数据库的字符集也是utf8的

还是乱码
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2013/8/11 15:49:33
3楼: ado 好像是用 WIDESTRING 的。
这个就麻烦了。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 wangweic (wangweic) ▲▲▲▲▲ -
普通会员
2013/8/11 16:53:53
4楼: ...  不要吓我按此在新窗口浏览图片
----------------------------------------------
-
作者:
男 wangweic (wangweic) ▲▲▲▲▲ -
普通会员
2013/8/15 15:03:26
5楼: 好吧,确实很麻烦,好几天了,到处求指导查资料,也没有解决
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2013/8/15 15:13:15
6楼: 把字段类型定义为 widestring 。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 cgzcgb (cgzcgb) ★☆☆☆☆ -
普通会员
2013/8/15 15:53:08
7楼: 这个问题的解决办法:
conn.ExecSql(set names gb2312;);

这个语句在插入之前执行就可以了。
----------------------------------------------
-
作者:
男 wangweic (wangweic) ▲▲▲▲▲ -
普通会员
2013/8/19 17:51:00
8楼:  谢谢,我没有用Paramter,直接写值到sql语句了
set names gb2312; 只能显示中文
此帖子包含附件:
JPEG 图像
大小:37.4K
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2013/8/20 9:26:34
9楼: conn.ExecSql(set names utf8;);
----------------------------------------------
(C)(P)Flying Wang
作者:
男 wangweic (wangweic) ▲▲▲▲▲ -
普通会员
2013/8/21 3:34:50
10楼: set names utf8 没有用,很早就试过了

procedure TForm1.FormCreate(Sender: TObject);
begin
  try
    con1.ConnectionString := 'DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=ylg_data;USER=root;PASSWORD=root;OPTION=3;charset=utf8';
    con1.Connected;
  except
    Application.MessageBox('连接失败','',MB_OK);
    exit;
  end;
  with qry1 do
  begin
    Close;
    sql.Text := 'set names utf8';
    ExecSQL;
  end;

  con2.HostName := 'localhost';
  con2.User := 'root';
  con2.Password := 'root';
  con2.Database := 'ylg_data';
  try
    con2.Connected := True;
    if not con2.Connected then
      Application.MessageBox('数据库连接失败','提示', MB_OK);
  except on e:exception do begin
     Application.MessageBox(PWideChar(e.Message),'提示', MB_OK);
    end;
  end;
  with zqry1 do
  begin
    Close;
    sql.Text := 'set names utf8';
    ExecSQL;
  end;
end;

新换了一个控件 ZEOSDBO  还是不行
此帖子包含附件:
JPEG 图像
大小:49.9K
----------------------------------------------
-
作者:
男 wangweic (wangweic) ▲▲▲▲▲ -
普通会员
2013/8/21 3:36:17
11楼: .
此帖子包含附件:
JPEG 图像
大小:84.1K
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2013/8/21 9:40:00
12楼: 楼主,你觉得我 6 楼的回复,可以考虑吗?
----------------------------------------------
(C)(P)Flying Wang
作者:
男 wangweic (wangweic) ▲▲▲▲▲ -
普通会员
2013/8/21 12:46:47
13楼: 谢谢您的帮助 不过还是不行,插入数字什么的正常,有汉字sql语句就会错了,不错的话提示,数据类型不匹配
此帖子包含附件:
JPEG 图像
大小:91.1K
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2013/8/21 13:00:08
14楼: 你光改字段肯定不行。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 wangweic (wangweic) ▲▲▲▲▲ -
普通会员
2013/8/21 13:01:21
15楼: 求教育,还要怎么弄啊按此在新窗口浏览图片
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行121.0938毫秒 RSS