免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4595 | 回复: 9
打印 上一主题 下一主题

请教DBI插入一些中文特殊繁体字如錦字的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-08-04 14:29 |只看该作者 |倒序浏览
出现问题的是比如:
@a的内容是 ( '马', 1)
my $sql = q/insert into table_1(c1,c2)values(?,?)/;
$sth= $dbh->prepare($sql);
$sth->execute(@a);
这时会报错:DBD::mysql::st execute failed: 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...

还有一些:玕璡誠...,只要字段值最后一个字是这些字,就有上面的问题

但是如果直接用my $sql = q/insert into(c1,c2)values( '马', 1)/;
$sth= $dbh->prepare($sql);
$sth->execute();
则是可以插入的

研究了一下有一些繁体汉字在perl按字节编码最后的编码与反斜杠\的编码一样,所以我想是不是这个原因导致的,不知道有人遇过并解决这个问题的吗?

论坛徽章:
0
2 [报告]
发表于 2011-08-04 14:32 |只看该作者
这个问题在mysql上出现,在Oracle上没有这个问题

论坛徽章:
0
3 [报告]
发表于 2011-08-11 17:59 |只看该作者
这些害人的字:碶誠玕璡錦運昞...
问题还是没有解决,

论坛徽章:
1
摩羯座
日期:2014-12-29 15:59:36
4 [报告]
发表于 2011-08-11 20:42 |只看该作者
这个不懂.
不用GBK编码可行不可行.这样就不是5C了

论坛徽章:
0
5 [报告]
发表于 2011-08-12 14:05 |只看该作者
这个不懂.
不用GBK编码可行不可行.这样就不是5C了
ziyunfei 发表于 2011-08-11 20:42


这个应该是perl的问题吧?
比如,你给这个变量这样赋值,会报错:Can't find string terminator "'" anywhere before EOF

论坛徽章:
1
摩羯座
日期:2014-12-29 15:59:36
6 [报告]
发表于 2011-08-12 14:18 |只看该作者
这个应该是perl的问题吧?
比如,你给这个变量这样赋值,会报错:Can't find string terminator "'" a ...
yiten 发表于 2011-08-12 14:05


你什么环境啊.终端utf-8.脚本utf-8.
就不会这样了

论坛徽章:
0
7 [报告]
发表于 2011-08-12 14:23 |只看该作者
你什么环境啊.终端utf-8.脚本utf-8.
就不会这样了
ziyunfei 发表于 2011-08-12 14:18



    我是GBK的,看来还真是这个问题

论坛徽章:
0
8 [报告]
发表于 2011-08-12 14:25 |只看该作者
$a = qq(\Q昞\E);

论坛徽章:
0
9 [报告]
发表于 2011-08-12 14:26 |只看该作者
可是现在数据库是GBK编码,现在该如何是好?

论坛徽章:
0
10 [报告]
发表于 2011-08-12 14:35 |只看该作者
use Encoding;

$a = encode ("unicode", decode("gbk", $a));
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP