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的引用