查看完整版本: 请教一个AIR 问题,怎么识别*.txt文件的字符集?

andy-tang 2008-6-27 12:28

请教一个AIR 问题,怎么识别*.txt文件的字符集?

哈哈,又当学生了,开始学Air!!

春叶版主最近可好?老朋友们都好啊!

昨天写了个Air 文本编辑器,能读出来,但有时会显示乱码,不知哪们大虾能解决?

代码如下:

[code]

package
{
//
import flash.filesystem.File;
import flash.display.MovieClip;
import flash.display.StageAlign;
import flash.display.StageScaleMode
import flash.filesystem.File;
import flash.net.FileFilter;
import flash.display.NativeWindow
import flash.events.Event;
import flash.text.TextField;
import flash.events.MouseEvent;
import flash.filesystem.FileStream;
import flash.utils.ByteArray;
import flash.filesystem.FileMode;
import flash.utils.CompressionAlgorithm
//
public class HelloworldRoot extends MovieClip
{
  //
  private var m_file:File=new File();
  private var m_win:NativeWindow;
  private var m_stAppName:String="Air notepad";
  private var m_slotX:int=0;
  private var m_slotY:int=0;
  private var m_stFilter:String="*.txt;*.xml;*.as";
  private var m_filter:FileFilter=new FileFilter("文本文件 "+m_stFilter,m_stFilter);
  private var m_fileStream:FileStream=new FileStream();
  private var m_bta:ByteArray=new ByteArray();
  private var m_stFilePath:String="";
  //
  //∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥构造函数
  public function HelloworldRoot()
  {
   addEventListener(Event.ADDED_TO_STAGE,toStage_this);
   //
   menubar.openBtn.addEventListener(MouseEvent.CLICK,click_openBtn);
   menubar.creatBtn.addEventListener(MouseEvent.CLICK,click_creatBtn);
  }
  //∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥文件新建函数
  private function click_creatBtn(e:MouseEvent){
   m_win.title=m_stAppName + " " + "新文档";
  }
  //∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥文件打开函数
  private function click_openBtn(e:MouseEvent){
   m_file.addEventListener(Event.SELECT, select_file);
   m_file.browseForOpen("Open", [m_filter])
  }
  //∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥文件选择函数
  private function select_file(e:Event){
   m_file.removeEventListener(Event.SELECT, select_file);
   m_win.title=m_stAppName + " " + m_file.nativePath;
   m_fileStream.open(m_file,FileMode.READ);
   ttf.appendText(String(m_fileStream.readMultiByte(m_fileStream.bytesAvailable,"CN-GB")));
   m_fileStream.close();
  }
  //∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥舞台缩放函数
  private function resize_stage(e:Event){
   var width:int=stage.stageWidth;
   menubar.bg.width=width;
   ttf.width=width-m_slotX;
   ttf.height=stage.stageHeight-m_slotY;
  }
  //∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥∥舞台添加函数
  private function toStage_this(e:Event){
   stage.align=StageAlign.TOP_LEFT;
   stage.scaleMode=StageScaleMode.NO_SCALE
   m_win=stage.nativeWindow;
   m_win.title=m_stAppName;
   m_slotX=stage.stageWidth-ttf.width;
   m_slotY=stage.stageHeight-ttf.height;
   ttf.border=false;
   stage.addEventListener(Event.RESIZE,resize_stage);
  }
}
}

[/code]

文件送上:
[attach]346933[/attach]

ycccc8202 2008-6-27 19:27

System.useCodePage=true;

var bytes:ByteArray=new ByteArray
                m_fileStream.readBytes(bytes,0,m_fileStream.bytesAvailable);
                ttf.appendText(bytes.toString())
这样写看看~

andy-tang 2008-6-29 23:57

问题解决了,不过方法上有些出入:)
谢谢版主!

andy-tang 2008-6-29 23:59

闪吧在技术上好像落后那么一截,没有 AIR 专区啊!

版主大人,至少增加个 AIR 标签吧,现在只有 RIA 标签!
或者,直接把本版名字改为:flash As3及AIR讨论区:lol

[[i] 本帖最后由 andy-tang 于 2008-6-30 00:05 编辑 [/i]]
页: [1]
查看完整版本: 请教一个AIR 问题,怎么识别*.txt文件的字符集?