如何解决AS3调用MYSQL 数据库出现乱码现象

如何解决AS3调用MYSQL 数据库出现乱码现象,第1张

MYSQL数据库不仅每个库有编码设置甚至是每个字段都有编码设置.

出现乱码肯定是你现在用的编码混乱造成的

解决办法:

第一步 先改数据库编码

先修改你的数据库,如果你页面用的是UTF-8编码那么你数据库内的编码也需要设置为UTF-8,每个字段都需要设置.要保持内外一致,你可以用Navicat for MySQL工具,这个工具里能看得很清除,如果表\字段很多的话你可以导出SQL语句,然后把SQL语句中相应的编码替换例如gb2312替换成utf8,然后再重新创建一个库,创建的时候字符集选择utf8的再把SQL语句导入,检查一下所有的编码都是utf8的就OK

第二步 程序修改

1\读库的时候

mysql_query("set names utf8")

2\每个页面头部加上一句

header("content-Type: text/htmlcharset=utf-8")

3\检查所有的编码声明是否正确

4\检查页面中现有文字所使用的编码是否正确,推荐你使用editplus在右下角会有显示UTF-8或者ANSI,要保证所有带有中文的文件打开后显示的编码集是UTF-8,如果不是的话可以将所有文件打开然后从菜单选择"文档"-"文件编码"-"文件编码(多文件)",然后选择所有的文件点确定,更改编码为UTF-8确定!

OK到此位置大功告成,所有的编码一致,绝对不会再出现乱码了,多说一句.对于MYSQL *** 作工具的选择本人只推荐两款,一是大家都熟悉的PHPMYADMIN 再就是Navicat for MySQL也有很多人都在用.至于MYSQL-font实在有些垃圾,有时显示出来的数据库结构和实际的都有差别....不敢苟同,另外MYSQL官方出的SQLyog对于编码的支持太差劲了,很难控制具体的编码,所以最好也不要用

目前flash在各方个面的应用越来越广,而flash也不单只是注重自身绚丽的效果,也需要和外界程序交换数据,以实现更强大的功能,随着as3的到来,flash和外部交互的方式也越来越简便和合理化。今天就在这里谈谈as3和后台数据的交互(这里选择as3+php架构,其他配置同理)。

在as3里,原来的loadVars方法已经被废弃,而改用一系列的类来实现与后台数据的交互,这些类是:URLLoader,URLLoaderDataFormat,URLStream,URLVariables。

URLLoader 类和原来的loadVars类似,是加载文本,2进制数据,xml,URL数据等信息的有力工具。URLLoader接受一个URLRequest 作为构造的参数,使用load方法来加载数据。URLLoder也可以进行监听,这点也loadVars不同,一个简单的示例如下:

1. //actionscript code

2. var loader:URLLoader = new URLLoader()

3. //声明一个URLRequest

4. var url:URLRequest = new URLRequest(”test.php”)

5. //设置传输方式为POST

6. url.method = URLRequestMethod.POST

7. //声明一个URLVariables

8. var values:URLVariables = new URLVariables()

9. //设置要传输的信息

10. values.message=”hello im flash!”

11. url.data = values

12. //设置以变量-值配对的方式解析数据

13. loader.dataFormat = URLLoaderDataFormat.VARIABLES

14. loader.addEventListener(Event.COMPLETE,loaded)

15. function loaded(e:Event){

16. trace(loader.data)

17. //outPut: phpMessage=im php message!&flashMessage=hello im flash!

18. trace(loader.data.phpMessage)

19. // im php message!

20. trace(loader.data.flashMessage)

21. // hello im flash!

22. }

23. loader.load(url)

1. //test.php code//

2. 3. $flashData = $_POST['message']

4. $phpMessage = 'im php message!'

5. echo "phpMessage=$phpMessage&flashMessage=$flashData"

6. ?>

以上这些就是as3里和后台交互的基础内容,现在你可以在as3里创建这样的交互,获取动态数据来丰富你的程序,在你开始自己动手实验之前,还有一些东西值得注意:

1,记得捕获和处理异常(上述的例子里都是假定在完美的测试环境下运行,所以没有加上异常捕获和处理的代码,但现实中你可能会遇到各种各样的情况)URLLoader可能引发好几种异常情况(详细请参见说明文档)

你应该通过监听ioError和securityError事件,或者通过try-catch来处理他们,即使你确信不会发生这样的问题。

2,文件的编码,这是个常见的问题,经常很多数据变成了乱码,或者解析出错,都是因为编码的问题,我的做法是确保发送的数据和后台传回的数据都是UTF-8格式(因为flash默认编码为utf-8)

AS3加载AS2影片会有一些需要注意的东西,首先它们用的不是一个虚拟机,所以AS3加载AS2影片会被创建成AVM1Movie对象

所以许多方面可能会受到影响,虽然很抱歉不知道这个情况怎么处理,参考下官方的说明吧,实在不行就改3.0吧...

AVM1Movie类:

http://help.adobe.com/zh_CN/AS3LCR/Flash_10.0/index.html

AS3与早期版本兼容性

http://help.adobe.com/zh_CN/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7ff9.html


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9922519.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存