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就可以支持中文了。
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就可以支持中文了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架