안녕하십니까? 안드로이드환경(자바환경에서도) 한글자리기를 할때 euc-kr환경이라면..

unicode이기때문에 한글이 2byte입니다. 해서 utf-8은 한글이 3byte네요.

아래와 같은 자르기 함수를 이용했습니다. 델파이의 copy함수처럼 만들고있는건데요.

델파이 copy함수는 copy(내용, 시작int, 끝int)

아래의 함수를 이용하면 자르기는 정확히 됩니다. (bystStr = str.getBytes("EUC-KR"); 이렇게 하면 2byte로 되는것이기때문에 정확히
잘라주죠. 한데 한글이 깨집니다.. 개발환경이 utf-8환경이기때문에(안드로이드에서는 기본utf-8을 사용하죠..?

String str 은 utf-8 한글인데요.. 어떻게 해야 2byte씩 자르고 한글도 깨지지않을까요..

다른분들 해보신 분들의 조언 좀 부탁드리겠습니다.

    public static String copy(String str, int sLoc, int eLoc) {
        byte[] bystStr;
        String rltStr = str;
       
     Log.e("TEST", "copy rltStr => [" + rltStr + "]");
       
        try
        {
         sLoc = sLoc - 1;
         
            //bystStr = str.getBytes();                       => 이렇게 하면 기본 default utf-8이기때문에 3byte씩 잘립니다.
         bystStr = str.getBytes("EUC-KR");         => 이렇게 하면 euc-kr로 2byte로 계산하기때문에 정확하게 잘리지만 한글이 깨집니다.
            int bytelen =  bystStr.length;
            
            if(bytelen >= (eLoc+sLoc)){
             
                rltStr = new String(bystStr, sLoc, eLoc).getBytes();
                //dec_str = new String(Base64.decode(enc_str), "UTF-8").toString();
                //rltStr = new String(new String(bystStr, sLoc, eLoc).getBytes(), "UTF-8").toString();
                //rltStr = new String(new String(bystStr, sLoc, eLoc).getBytes("UTF-8"));
                //rltStr = new String(new String(bystStr, sLoc, eLoc).getBytes("EUC-KR"), "UTF-8");
                Log.e("TEST", "copy rltStr return => [" + rltStr + "]");
            }
        }
        catch(Exception e)
        {
            return rltStr;
        }
       return rltStr;
    }