语录提交--登陆--注册--论坛交流--站长博客

AIR里在HTML组件中显示中文

[作者:auzn][日期:2008-01-14][导航:Flash教程 >> ActionScript3 >> AIR里在HTML组件中显示中文]
  想使用HTML组件来显示一些含HTML标签的字符串,但发现字串里的中文全部变成了乱码。
如果直接使用组件的location属性设置url的话,可以正常显示网页里的中文。
初步推断是页面编码的原因。
没有在文档里查到设置页面编码的属性或方法,正常来说应该是没有的,因为加载页面时会读取网页中的META部分设置编码。(本人对AIR了解有限,如果有更好的方法,请留言)
可以把字符串包含在HTML的标签中并在HTML标签中设置页面字符编码,就可以正常显示中文了
令人欣慰的是,这种方法可行!

程序运行如下:

使用自定义类显示中文字符:


未使用(显示的是乱码):



下面对主要代码进行一下简单的解释:
public static const beginHtml:String = "<HTML><HEAD><META http-equiv=Content-Type content=\"text\/html;charset=utf-8\"><\/HEAD><BODY STYLE=\"font-size:12px\">";
        public static const endHtml:String = "<\/BODY><\/HTML>";
    
    
        public function HtmlSetter()
        {
        }
        
        
        //重新组合,添加HTML头及尾部字符串
        public static function getHtmlText(htmlStr:String):String
        {
            return beginHtml+htmlStr+endHtml;
        }
        
        
        //首先过滤掉begin和end的字符串,再调用getHtmlText,添加begin和end
        public static function appendHtmlText(oldStr:String, appendStr:String):String
        {
            var myPatternBegin:RegExp = new RegExp(beginHtml ,"i");
            var myPatternEnd:RegExp = new RegExp(endHtml ,"i");
            oldStr = oldStr.replace(myPatternBegin, "");
            oldStr = oldStr.replace(myPatternEnd, "");
            return getHtmlText(oldStr+appendStr);
        }



首先定义头尾要加入的字符串beginHtml和endHtml
getHtmlText方法将输入字符串进行组装然后返回
appendHtmlText方法将输入字符串去头尾的beginHtml和endHtml,得到原始的输入字符串,然后附加新增的字符串,最后再使用getHtmlText方法返回。

原理很简单,是一种不算办法的办法,呵呵

安装文件及源码(运行环境AIR Beta3,编辑环境:FLEX Builder3 Beta3):
下载文件 点击下载此文件

P.S 不知道有没有先行者提出过这个方法,如有擂同,请告知,呵

[文章热度:]


上一页:AS3最in的写法

下一页:AS3 中This的引用

最新话题

网站导航

搜索

网站公告


Copyright 2007 51as.com. Some Rights Reserved.
鄂ICP备07003189号

Powered by: KingCMS 5.0.1.0217