티스토리 뷰
function readMultiEncodingText(bytes:ByteArray):String
{
//UTF-8 with BOM
if(bytes[0] == 0xEF)if(bytes[1] == 0xBB)if(bytes[2] == 0xBF) return bytes.toString();
//UTF-16 Big Endian
if(bytes[0] == 0xFE)if(bytes[1] == 0xFF) return bytes.toString();
//UTF-16 Little Endian
if(bytes[0] == 0xFF)if(bytes[1] == 0xFE) return bytes.toString();
//UTF-32 Big Endian
if(bytes[0] == 0x0)if(bytes[1] == 0x0)if(bytes[2] == 0xFE)if(bytes[3] == 0xFF) return bytes.toString();
//UTF-32 Little Endian
if(bytes[0] == 0xFF)if(bytes[1] == 0xFE)if(bytes[2] == 0x0)if(bytes[3] == 0x0) return bytes.toString();
//기타
var ansiStr:String = bytes.readMultiByte(bytes.bytesAvailable, "ANSI");
var unicodeStr:String = bytes.toString();
if(ansiStr.length < unicodeStr.length) return ansiStr;
return unicodeStr;
}
출처 : http://airdev.tistory.com/397 원강민님 블로그
사용법이 자세하게 나와있지 않아서 바이너리 형식의 데이터에 대한 사용법을 작성해 둔다.
일단 바이너리 데이터의 UTF지원을 추가해주고, 포인터를 0으로 초기화해준 뒤 쓰면 된는데
약간의 메서드와 속성만 적용해서 아래와 같이 쓰면 된다.
function sendToText($str):String{
var ba:ByteArray = new ByteArray();
ba.writeUTFBytes($str); //UTF문자열쓰기
ba.position = 0; //byteArray 포인터를 0으로 이동
var encoStr:String = readMultiEncodingText(ba);
trace(encoStr);
return encoStr;
}
sendToText("달변가보다 실천가");
'■ 플래시 ■ > Adobe ActionScript3.0' 카테고리의 다른 글
| Sound - After Hanabi ... (0) | 2014.04.26 |
|---|---|
| 이름이 없는 오브젝트에 대한 접근 (0) | 2013.11.28 |
| Array Sort (0) | 2013.11.25 |
| 컴파일 오류 모음 (0) | 2013.11.20 |
| OOP의 캡슐화를 위한 답변 (0) | 2013.11.19 |
댓글