ASsql中文问题

Adobe的AIR确实强大,能够开发出传统并且比传统C/S桌面系统要好的系统,但是目前仍存在一个问题,就是数据库连接驱动,想直接用AS3连接数据库,并对数据库进行操作,那就得第三方数据库连接组件了,它自带的SQLite不能满足企业级管理系统的需求,而目前Mysql有个开源的AS驱动,叫做ASsql,到code.google去下载,并且测试了一下,不测不知道,原来它对中文的支持不好。
Mysqlserver端的所有属性字符集都改成utf8;然后通过AIR程序对数据库表写进一条含有中文的记录,然后通过AIR程序读取显示,可以正常显示中文,但是通过客户端控制台和客户端管理工具,mysql query browser或者EMS,查看表数据记录,那中文都是乱码,唉~~
打开ASsql的源代码看看,发现用的是readUTFBytes和writeUTFBytes来处理命令,这我就不明白了,按道理也是utf字符集嘛,怎么会这样子的呢?
不过有一点要指出的是,as里面,一个中文字是占3个字节的长度,这是否就是在mysql客户端软件中无论怎样都是显示乱码的原因吧。


经过几天的努力,终于解决这一问题了,以后大家可以安心地用这个驱动了。在这里谢谢ASsql的作者。
大家下载最新的原代码http://code.google.com/p/assql/,然后打开com.maclema.mysql.HandshakeHandler.as,修改doSecureAuthentication411()这个方法里的这句设定语言的语句:
//language
            //packet.writeByte( 8 ); //charset
            packet.writeByte( 33 );
这样,打包好的assql.swc就可以支持中文了。

阅读更多

没有更多推荐了,返回首页