Core LibraryAPI Reference

Choose documentation 3

latest

Current version

latest
English

Prerelease This site documents an alpha of libtmux. Its structure, URLs and APIs are subject to change.

class libtmux-java latest

UnencodableTextException

Package io.github.libtmux.exception.UnencodableTextException io.github.libtmux.exception

Text this JVM cannot hand to tmux intact, with no route left to send it by.

View as Markdown

Source and package
Module
io.github.libtmux.exception
Package
io.github.libtmux:libtmux
Source
libtmux/src/main/java/io/github/libtmux/exception/UnencodableTextException.java
class io.github.libtmux.exception.UnencodableTextException
classreadonly [source]

Description#

A child process receives its arguments as bytes, and the JVM encodes them with the platform's native encoding — which is the locale's, decided before main runs. In a locale that is not UTF-8 that encoding cannot carry most of Unicode, so tmux would receive ? where a caller wrote é. The process transport therefore sends such a command over tmux's standard input instead, which this library encodes itself, and this is raised only when that route is already taken — a command that reads standard input — or when the text is in the endpoint, the binary or socket path, which nothing but an argument can carry.

Only the environment removes the limit: start the JVM with LC_ALL or LANG naming a UTF-8 locale. -Dsun.jnu.encoding and -Dfile.encoding do not, because the native encoding is read before either is applied.

ASCII text is unaffected on every locale, and so is everything tmux sends back: a reply is decoded as the UTF-8 tmux wrote rather than through the platform's encoding.

Members1 member#

Other members1 member#

Esc

Type to search.