깨진 Hex Code decode 하기
2024. 11. 17. 17:11ㆍJava
깨진 문구
Test \\xED\\x99\\x94\\xEB\\xA9\\xB4 \\xED\\x99\\x94\\xEB\\xA9\\xB4 !!
decode
String input = "Test \\xED\\x99\\x94\\xEB\\xA9\\xB4 \\xED\\x99\\x94\\xEB\\xA9\\xB4 !!";
// Sanitize the input to keep only valid hexadecimal characters
String decoded = decodeHex2String(input);
System.out.println("Decoded String: " + decoded);
public static String decodeHex2String(String input) {
// A list to collect UTF-8 bytes
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
int i = 0;
while (i < input.length()) {
if (i + 3 < input.length() && input.charAt(i) == '\\' && input.charAt(i + 1) == 'x') {
// Found \xHH sequence
String hex = input.substring(i + 2, i + 4); // Extract the hex digits
try {
int value = Integer.parseInt(hex, 16); // Parse the hex digits
byteArrayOutputStream.write(value); // Write the byte to the output stream
i += 4; // Skip past \xHH
} catch (NumberFormatException e) {
// If parsing fails, append the original sequence as-is
byteArrayOutputStream.write(input.charAt(i));
i++;
}
} else {
// Regular character, append as a single byte
byteArrayOutputStream.write(input.charAt(i));
i++;
}
}
}
'Java' 카테고리의 다른 글
Java로 SMTP 메일 발송하기 (0) | 2024.11.19 |
---|---|
숫자 6자리 임시 비밀번호 만들기 (0) | 2024.11.19 |
List<Map<String, Object>>에 item 추가하기 (1) | 2024.11.12 |
hostname 정보 가져오기 (0) | 2024.11.12 |
오늘 날짜 얻어 내기 (0) | 2024.11.07 |