导航:
论坛 -> 数据库专区
斑竹:liumazi,waterstone
作者:
2013/8/11 3:45:00
标题:
加入我的收藏
楼主:
数据里面有韩文,插入数据的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语句
----------------------------------------------
-
作者:
2013/8/11 8:47:54
1楼:
sql.text := utf8encode(yousqltext); 意思就是转成 UTF8 文本。
----------------------------------------------
(C)(P)Flying Wang
作者:
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的 还是乱码
----------------------------------------------
-
作者:
2013/8/11 15:49:33
3楼:
ado 好像是用 WIDESTRING 的。 这个就麻烦了。
----------------------------------------------
(C)(P)Flying Wang
作者:
2013/8/11 16:53:53
4楼:
... 不要吓我
----------------------------------------------
-
作者:
2013/8/15 15:03:26
5楼:
好吧,确实很麻烦,好几天了,到处求指导查资料,也没有解决
----------------------------------------------
-
作者:
2013/8/15 15:13:15
6楼:
把字段类型定义为 widestring 。
----------------------------------------------
(C)(P)Flying Wang
作者:
2013/8/15 15:53:08
7楼:
这个问题的解决办法: conn.ExecSql(set names gb2312;); 这个语句在插入之前执行就可以了。
----------------------------------------------
-
作者:
2013/8/19 17:51:00
8楼:
谢谢,我没有用Paramter,直接写值到sql语句了 set names gb2312; 只能显示中文
此帖子包含附件: 大小: 37.4K
----------------------------------------------
-
作者:
2013/8/20 9:26:34
9楼:
conn.ExecSql(set names utf8;);
----------------------------------------------
(C)(P)Flying Wang
作者:
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 还是不行
此帖子包含附件: 大小: 49.9K
----------------------------------------------
-
作者:
2013/8/21 3:36:17
11楼:
.
此帖子包含附件: 大小: 84.1K
----------------------------------------------
-
作者:
2013/8/21 9:40:00
12楼:
楼主,你觉得我 6 楼的回复,可以考虑吗?
----------------------------------------------
(C)(P)Flying Wang
作者:
2013/8/21 12:46:47
13楼:
谢谢您的帮助 不过还是不行,插入数字什么的正常,有汉字sql语句就会错了,不错的话提示,数据类型不匹配
此帖子包含附件: 大小: 91.1K
----------------------------------------------
-
作者:
2013/8/21 13:00:08
14楼:
你光改字段肯定不行。
----------------------------------------------
(C)(P)Flying Wang
作者:
2013/8/21 13:01:21
15楼:
求教育,还要怎么弄啊
----------------------------------------------
-