Print a UTF-8 character object.
utf8_print(
x,
...,
chars = NULL,
quote = TRUE,
na.print = NULL,
print.gap = NULL,
right = FALSE,
max = NULL,
names = NULL,
rownames = NULL,
escapes = NULL,
display = TRUE,
style = TRUE,
utf8 = NULL
)
character object.
These dots are for future extensions and must be empty.
integer scalar indicating the maximum number of character units
to display. Wide characters like emoji take two character units; combining
marks and default ignorables take none. Longer strings get truncated and
suffixed or prefixed with an ellipsis ("..."
in C locale,
"\u2026"
in others). Set to NULL
to limit output to the line
width as determined by getOption("width")
.
logical scalar indicating whether to put surrounding
double-quotes ('"'
) around character strings and escape internal
double-quotes.
character string (or NULL
) indicating the encoding
for NA
values. Ignored when na.encode
is FALSE
.
non-negative integer (or NULL
) giving the number of
spaces in gaps between columns; set to NULL
or 1
for a single
space.
logical scalar indicating whether to right-justify character strings.
non-negative integer (or NULL
) indicating the maximum
number of elements to print; set to getOption("max.print")
if
argument is NULL
.
a character string specifying the display style for the (column) names, as an ANSI SGR parameter string.
a character string specifying the display style for the row names, as an ANSI SGR parameter string.
a character string specifying the display style for the backslash escapes, as an ANSI SGR parameter string.
logical scalar indicating whether to optimize the encoding for display, not byte-for-byte data transmission.
logical scalar indicating whether to apply ANSI terminal escape
codes to style the output. Ignored when output_ansi()
is
FALSE
.
logical scalar indicating whether to optimize results for a
UTF-8 capable display, or NULL
to set as the result of
output_utf8()
. Ignored when output_utf8()
is FALSE
.
The function returns x
invisibly.
utf8_print()
prints a character object after formatting it with
utf8_format()
.
For ANSI terminal output (when output_ansi()
is TRUE
), you can
style the row and column names with the rownames
and names
parameters, specifying an ANSI SGR parameter string; see
https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_(Select_Graphic_Rendition)_parameters.
# printing (assumes that output is capable of displaying Unicode 10.0.0)
print(intToUtf8(0x1F600 + 0:79)) # with default R print function
#> [1] "๐๐๐๐๐๐
๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐๐ ๐ก๐ข๐ฃ๐ค๐ฅ๐ฆ๐ง๐จ๐ฉ๐ช๐ซ๐ฌ๐ญ๐ฎ๐ฏ๐ฐ๐ฑ๐ฒ๐ณ๐ด๐ต๐ถ๐ท๐ธ๐น๐บ๐ป๐ผ๐ฝ๐พ๐ฟ๐๐๐๐๐๐
๐๐๐๐๐๐๐๐๐๐"
utf8_print(intToUtf8(0x1F600 + 0:79)) # with utf8_print, truncates line
#> [1] "๐โ๐โ๐โ๐โ๐โ๐
โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐ โ๐กโ๐ขโ๐ฃโโฆ"
utf8_print(intToUtf8(0x1F600 + 0:79), chars = 1000) # higher character limit
#> [1] "๐โ๐โ๐โ๐โ๐โ๐
โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐ โ๐กโ๐ขโ๐ฃโ๐คโ๐ฅโ๐ฆโ๐งโ๐จโ๐ฉโ๐ชโ๐ซโ๐ฌโ๐ญโ๐ฎโ๐ฏโ๐ฐโ๐ฑโ๐ฒโ๐ณโ๐ดโ๐ตโ๐ถโ๐ทโ๐ธโ๐นโ๐บโ๐ปโ๐ผโ๐ฝโ๐พโ๐ฟโ๐โ๐โ๐โ๐โ๐โ๐
โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ๐โ"
# in C locale, output ASCII (same results on all platforms)
oldlocale <- Sys.getlocale("LC_CTYPE")
invisible(Sys.setlocale("LC_CTYPE", "C")) # switch to C locale
utf8_print(intToUtf8(0x1F600 + 0:79))
#> [1] "\U0001f600\U0001f601\U0001f602\U0001f603\U0001f604\U0001f605\U0001f606..."
invisible(Sys.setlocale("LC_CTYPE", oldlocale)) # switch back to old locale
# Mac and Linux only: style the names
# see https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_(Select_Graphic_Rendition)_parameters
utf8_print(matrix(as.character(1:20), 4, 5),
names = "1;4", rownames = "2;3")
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] "1" "5" "9" "13" "17"
#> [2,] "2" "6" "10" "14" "18"
#> [3,] "3" "7" "11" "15" "19"
#> [4,] "4" "8" "12" "16" "20"