본문 바로가기

FLEX

[FLEX] 한글이 들어간 문자열 일정길이로 자르기


주요 요점 : 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)