최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday

티스토리 뷰

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
댓글