static StringBuilder escapeChar(char c, StringBuilder sb) {
        sb.append('%');
        if (c < 16) {
            sb.append('0');
        }
        sb.append(Integer.toHexString(c).toUpperCase());
        return sb;
    }
@Test
    void testEscapeChar() {
        for (char c = 0; c <= 128; c++) {
            String expected = "%" + String.format("%1$02X", (int) c);
            String actual = PartitionPathUtils.escapeChar(c, new StringBuilder()).toString();
            assertThat(actual).isEqualTo(expected);
        }
    }