본문 바로가기

Programing/OpenSource

[Util] EUC-KR to JavaScript escaped string

파일럿 성으로 만들어보았는데 결국 쓰지 않을 것 같지만 아카이브용으로 기록해둔다.

public static String toJsonEucKr(String str) {
        if (Objects.isNull(str)) {
            return null;
        }

        byte[] euckr = str.getBytes(EUC_KR);
        StringBuilder sb = new StringBuilder(euckr.length * 5); // 1: 5B -> 6: \u005B , 2: B0E6 -> 6: \uB0E6
        boolean isMultibyte = false;
        for (byte b : euckr) {
            if (isMultibyte) {
                sb.append(byteToHex(b));
                isMultibyte = false;
            } else {
                if ((b & 0x80) == 0) {
                    sb.append("\\u00").append(byteToHex(b));
                } else {
                    sb.append("\\u").append(byteToHex(b));
                    isMultibyte = true;
                }
            }
        }
        return sb.toString();
    }