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

io.github.libtmux.UnencodableTextException.UnencodableTextException

Java
  • Python Unavailable
  • Ruby Unavailable
  • Lua Unavailable
  • TypeScript Unavailable
  • Rust Unavailable
  • Go Unavailable
  • Java
  • .NET Unavailable
  • C++ Unavailable
  • Swift Unavailable

View as Markdown

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

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

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.

1 declared, 0 inherited

Members

Esc

Type to search.