Printed UTF8 and XML escape sequences too in four corner documentation

This commit is contained in:
Willem Cazander 2025-01-23 20:07:11 +01:00
parent 980af7d136
commit 122efdc496

View file

@ -23,8 +23,11 @@
package org.x4o.fc18.cake2.fcdoc; package org.x4o.fc18.cake2.fcdoc;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.PrimitiveIterator;
import org.x4o.fc18.cake2.FourCornerX00PetitVideCoinCarne; import org.x4o.fc18.cake2.FourCornerX00PetitVideCoinCarne;
import org.x4o.fc18.cake2.FourCornerX06BaklavaPointSequence; import org.x4o.fc18.cake2.FourCornerX06BaklavaPointSequence;
@ -92,6 +95,24 @@ public class FCDocSegmentWriterCakeWord implements FCDocSegmentWriter {
} }
if (x21CodeDisplay.isPresent()) { if (x21CodeDisplay.isPresent()) {
writeSequence(writer, "Sequence-X21", 6, x21CodeDisplay.get().codePointSequence()); writeSequence(writer, "Sequence-X21", 6, x21CodeDisplay.get().codePointSequence());
StringBuilder bufUTF8 = new StringBuilder();
x21CodeDisplay.get().codePointSequence().forEach(v -> bufUTF8.appendCodePoint(v));
byte[] sequenceUTF8Bytes = bufUTF8.toString().getBytes(StandardCharsets.UTF_8);
List<Integer> sequenceUTF8 = new ArrayList<>();
for (int i = 0; i < sequenceUTF8Bytes.length; i++) {
sequenceUTF8.add(Byte.toUnsignedInt(sequenceUTF8Bytes[i]));
}
writeSequence(writer, "Sequence-X21-UTF8", 2, sequenceUTF8);
StringBuilder bufXML = new StringBuilder();
PrimitiveIterator.OfInt codePoints = bufUTF8.codePoints().iterator();
while (codePoints.hasNext()) {
int codePoint = codePoints.nextInt();
bufXML.append("&amp;#x"); // manual &amp to show literal escape string
bufXML.append(Integer.toHexString(codePoint));
bufXML.append(";");
}
writer.docTableRow("Sequence-X21-XML", bufXML.toString());
} }
writer.docTableEnd(); writer.docTableEnd();
// } // }