plotASCII <- function (extended = TRUE, cex = graphics::par("cex"), family = graphics::par("family"), plot = TRUE) { xlim <- c(0, 16) xvals <- 0:15 if (extended) { codes <- 1:255 ylim <- c(16, 0) yvals <- 0:15 } else { codes <- 1:127 ylim <- c(8, 0) yvals <- 0:7 } ASCII <- as.character(str2expression(sprintf("\"\\x%02X\"", codes))) Encoding(ASCII) <- "latin1" ASCII <- enc2utf8(ASCII) names(ASCII) <- sprintf("%02X", codes) if (plot) { opar <- graphics::par(cex = cex, family = family, mar = c(0, 2.1, 2.1, 0)) on.exit(graphics::par(opar)) graphics::plot( xlim = xlim - 0.5, ylim = ylim - 0.5, x = NA_real_, y = NA_real_, axes = FALSE, ann = FALSE ) graphics::text( x = rep(xvals, 16), y = rep(yvals, each = 16), labels = c(NA, ASCII) ) graphics::axis(side = 3L, at = xvals, labels = sprintf("%X", xvals), las = 1) graphics::axis(side = 2L, at = yvals, labels = sprintf("%X", yvals), las = 1) invisible(ASCII) } else ASCII }