转义符(/)带来的问题(Perl+mySQL).

       众所周之,"/"在大多数语言中都用来作为转义符(至少我接触到的语言都是这样的,不知道有没有其它语言不是用"/"作转义符的^_^),而最近在使用Perl连MySQL数据库做网页开发时,碰到了这样一些问题.

       1.在MySQL数据库中,对于"/"的转换,在插入、更新数据和在查询时是不一样的,在插入和更新数据时我们只需要把一个”/"转成两个就可以了,而在做查询时需要把一个“/“转成四个。在Perl中我们可以这样写:

       $strRet =~ s/g;
       $strRet =~ s/g;  

      2.第二个问题是Perl语言对“/”的转换和日本语文字带来的问题。
         “/“在ASCII表中16进制为5C。在日本语文字中有以下一些字带有5C,
         

Ы

        本来这还没有什么,不过一到Perl中,问题就来了,在Perl中使用(~ s/g)或(~ s/g )进行转换时是按字节进行转换的,那么不就是以上包含“5C”的汉字都被转换了吗?这可不是我们想要的结果。我采用了一种很苯拙的解决方法,先把“/“转换,在把这四十个汉字后多余的”/“去掉。如:
            $strRet =~ s/g;
            $strRet =~ s/―/―//g;
        在http://www.shtml.jp/mojibake/sjis_cgi.html给了我们很多解决方法,不过是日文的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值