When a byte or byte combination cannot be converted to a character by the
character encoding, I think Java prints '?' (0x3F) by default.
You con't need SocketAppender to reproduce this:
@Test
public void test() {
String txt = "?String" + '\uD800';
System.out.println(txt); // prints ?String
Hello,
While trying to understand the behavior of SocketAppender against
uncommon Unicode characters, I have come across to an interesting
case: \uD800 gets transmitted as \u003F ('?'). One can easily verify
this by appending \uD800 at the end of "This is a test message"
literals in SocketAppender