diff --git a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/java/JavaGenerator.java b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/java/JavaGenerator.java index 4e48e9bd0..a6140952d 100644 --- a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/java/JavaGenerator.java +++ b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/java/JavaGenerator.java @@ -4557,8 +4557,23 @@ private int writeTokenDisplay( } else { - // have to duplicate because of checkstyle :/ - append(sb, indent, "builder.append(this." + fieldName + "());"); + if (typeToken.encoding().primitiveType() == PrimitiveType.CHAR) + { + append(sb, indent, "char _" + fieldName + " = (char) this." + fieldName + "();"); + append(sb, indent, "if (_" + fieldName + " >= 32 && _" + fieldName + " <= 127)"); + append(sb, indent, "{"); + append(sb, indent, " builder.append('\\'').append(_" + fieldName + ").append('\\'');"); + append(sb, indent, "}"); + append(sb, indent, "else"); + append(sb, indent, "{"); + append(sb, indent, " builder.append('\\\\').append((int) _" + fieldName + ");"); + append(sb, indent, "}"); + } + else + { + // have to duplicate because of checkstyle :/ + append(sb, indent, "builder.append(this." + fieldName + "());"); + } } break;