주요 요점 : euc-kr로 바꾸어 길이를 잰 다음, 자르고 (자를때 끝 길이 주의), euc-kr로 문자열 리턴함
// 한글이 들어간 문자열 자르기
private function hstrcut( str:String, begin:int, len:int ):String {
var bLen:int = getByteLength( str );
var tLen:int = 0;
var bArr:ByteArray = new ByteArray();
var rArr:ByteArray = new ByteArray();
bArr.writeMultiByte(str, "euc-kr");
if (bLen < begin+len) tLen = bLen-begin;
else tLen = len;
rArr.writeBytes( bArr, begin, tLen );
rArr.position = 0;
return rArr.readMultiByte(tLen, "euc-kr");
}
// 문자열의 바이트 길이를 리턴
private function getByteLength(str:String):int {
var byteArr:ByteArray = new ByteArray();
byteArr.writeMultiByte(str, "euc-kr");
return byteArr.length;
}
참조 : http://somnusong.textcube.com/19 (한글엔 maxChars 대신 maxBytes)