runners

class invoke.runners.Runner(context: Context)

部分抽象的核心命令运行API。

此类本身不可用,必须派生子类,实现许多方法,如 startwaitreturncode 。有关子类实现示例,请参阅的源代码 Local

在 1.0 版本加入.

__init__(context: Context) None

创建一个新的流道,并在某些流道上添加句柄 Context

参数:

context -- 一个 Context 实例,用于传输默认选项并提供对其他上下文信息的访问(例如,面向远程的 Runner 可能需要一个 Context 包含有关主机名和端口的信息的子类。)..注:: Context 习惯于 Runner 实例 must 包含的默认配置值 Runner 有问题的班级。这至少意味着每个缺省值 Runner.run 关键字参数,如 echowarn

抛出:

exceptions.ValueError -- 如果不是所有预期的缺省值都在 context

context

这个 Context given to the same-named argument of _ _init__.

program_finished

A threading.Event 信令程序完成。

通常设置在 wait 回归。一些IO机制依赖于此来知道何时退出无限读取循环。

read_chunk_size = 1000

每次流读取迭代要读取的字节数(最大)。

input_sleep = 0.01

在stdin读取循环和其他快速循环的每次迭代上休眠的秒数。

warned_about_pty_fallback

是否已发出PTY回退警告。

watchers: List['StreamWatcher']

一份名单 StreamWatcher 供使用的实例 respond 。在运行时由 run

run(command: str, **kwargs: Any) Result | None

执行 command ,返回 Result 一旦完工。

默认情况下,此方法是同步的(仅在子进程完成后才返回),并允许与子进程进行交互式键盘通信。

它可以改为异步行为(提前返回并需要与结果对象交互以管理子流程生命周期),如果指定 asynchronous=True 。此外,您可以通过以下语句完全解除该子流程与Invoke的控制的关联(允许它在Python退出后自行保留) disown=True 。有关这两种情况的详细信息,请参阅下面的每kwarg文档。

备注

所有kwarg将默认为在此实例的 context 属性,特别是在其配置的 run 子树(例如 run.echo 属性的默认值。 echo 关键字等)。基本默认值在下面的参数列表中描述。

参数:
  • command (str) -- 要执行的Shell命令。

  • asynchronous (bool) -- 当设置为时 True (默认 False ),启用异步行为,如下所示:-禁用与控制终端的连接,这意味着您将看不到子进程输出,并且它将不会响应您的键盘输入-类似于 hide=Truein_stream=False (虽然明确给出 (out|err|in)_stream 类似文件的对象仍将被视为正常对象)。- run 在启动子进程后立即返回,其返回值将成为 Promise 而不是 Result 。- Promise 对象主要用于其 join 方法,该方法会一直阻塞,直到子进程退出(类似于线程化API),然后返回最终的 Result 或引发异常,就像同步 run 会的。-与线程和类似的API一样,用户 asynchronous=True 应该确保 join 他们的 Promise 对象以防止解释器关闭问题。-处理此类清理的一种简单方法是使用 Promise 作为上下文管理器-它将自动 join 在上下文块的出口处。。。添加的版本::1.4

  • disown (bool) -- 当设置为时 True (默认 False ),立即返回如下内容 asynchronous=True ,但不执行与该子进程相关的任何后台工作(它被完全忽略)。这允许使用Shell背景或类似技术(例如拖尾)的子过程 &nohup ),以在运行调用的Python流程的生命周期之后继续存在。。。注意:如果您不确定是要这个还是 asynchronous ,您可能想要 asynchronous 好了!具体来说, disown=True 具有以下行为:-返回值为 None 而不是一个 Result 或者说子类。-没有启动I/O工作线程,因此您将无权访问子进程的stdout/stderr,您的stdin将不会被转发, (out|err|in)_stream 将被忽略,并且诸如 watchers 将不起作用。-没有检查退出码,所以如果子进程无法干净地退出,您不会收到任何错误。- pty=True 可能无法正常运行(子进程可能根本不运行;这似乎是Python中的潜在错误 pty.fork ),除非您的命令行包含诸如 nohup 或者(内置Shell) disown 。。。添加的版本::1.4

  • dry (bool) -- 是否进行模拟运行,而不是真正调用给定命令。看见 --dry (这会在全局范围内打开此功能),以了解有关此行为的详细信息。。。版本添加::1.3

  • echo (bool) -- 控制是否 run 在执行命令之前,将命令字符串打印到本地标准输出。默认: False 。。。注:: hide=True 将覆盖 echo=True 如果两个都给的话。

  • echo_format -- 一个字符串,当传递给Python的内置 .format 方法时,将更改输出的格式。 run.echo 设置为True。目前,只有 {command} 支持将其作为参数。默认以ANSI转义粗体打印完整的命令字符串。

  • echo_stdin (bool) -- 是否将数据写入 in_stream 返回到 out_stream 。换句话说,在正常的交互用法中,该参数控制Invoke是否将您键入的内容镜像回您的终端。默认情况下(当 None ),此行为由以下因素触发: * Not using a pty to run the subcommand (i.e. pty=False), as ptys natively echo stdin to stdout on their own; * 并且当控制终端调用其自身时(根据 in_stream )似乎是有效的终端设备或TTY。(具体而言,当 isatty 产生一种 True 给出结果时的结果 in_stream .)..注意::此属性倾向于 False 当通过管道将另一个程序的输出传输到调用会话中时,或者当在另一个程序中运行调用时(例如,从自身运行调用)。如果这两个属性都为True,则将发生回显;如果其中一个为False,则不会执行回显。什么时候不是 None ,则此参数将覆盖自动检测并强制或禁用回显。

  • encoding (str) -- 覆盖子进程对其stdout/stderr流使用哪种编码的自动检测(默认为返回值 default_encoding )。

  • err_stream -- 相同于 out_stream ,除标准误差外,默认为 sys.stderr

  • env (dict) -- 默认情况下,子流程接收Invoke自己的环境的副本(即 os.environ )。在这里提供一个字典来更新子环境。例如, run('command', env={'PYTHONPATH': '/some/virtual/env/maybe'}) 将修改 PYTHONPATH Env var,而子环境的其余部分看起来与父环境相同。。。另请参阅:: replace_env 用于将‘UPDATE’更改为‘REPLACE’。

  • fallback (bool) -- 控制自动回退行为重新:在以下情况下提供PTY时出现问题 pty=True 。这是否有任何效果取决于具体的 Runner 正在调用的子类。默认: True

  • hide -- 允许调用方禁用 run 将子进程的stdout和stderr复制到控制终端的默认行为。指定 hide='out' (或 'stdout' )来仅隐藏标准输出流, hide='err' (或 'stderr' )仅隐藏stderr,或 hide='both' (或 True )以隐藏这两个流。缺省值为 None ,意思是打印所有内容; False 还将禁用隐藏。。。注意::stdout和stderr始终被捕获并存储在 Result 对象,而不管 hide 的值。..注:: hide=True 还将重写 echo=True 如果两者都提供(作为kwargs或通过CONFIG/CLI)。

  • in_stream -- 一个类似文件的流对象,用作子进程的标准输入。如果 None (默认设置), sys.stdin 将会被使用。如果 False 将完全禁用stdin镜像(尽管写入子进程的stdin的其他功能,如自动响应,仍将起作用)。在以下情况下,禁用标准输入镜像会有所帮助 sys.stdin 是行为不端的非流对象,例如被测试的线束或无头命令运行器。

  • out_stream -- 子进程的标准输出应写入的类似文件的流对象。如果 None (默认设置), sys.stdout 将会被使用。

  • pty (bool) -- 默认情况下, run 直接连接到被调用的进程并读取其stdout/stderr流。在这种情况下,与使用实际终端或伪终端(PTY)相比,一些程序将缓冲(甚至行为)不同。要使用PTY而不是默认行为,请指定 pty=True 。。。警告:由于pty的性质,pty只有一个输出流,因此区分stdout和stderr的能力是 not possible 什么时候 pty=True 。因此,所有输出都将显示在 out_stream (见下文),并被捕获到 stdout 结果属性。 err_streamstderr 将始终为空,当 pty=True

  • replace_env (bool) -- 什么时候 True ,使子进程接收给定给 env 作为其整个Shell环境,而不是更新 os.environ (这是默认行为)。默认: False

  • shell (str) -- 要使用的Shell二进制文件。默认: /bin/bash (在Unix上; COMSPECcmd.exe 在Windows上。)

  • timeout -- 使运行程序向子进程提交中断并引发 CommandTimedOut ,如果命令花费的时间超过 timeout 执行的秒数。默认为 None ,意味着不会超时。。。版本添加::1.3

  • warn (bool) -- 是否发出警告并继续,而不是引发 UnexpectedExit 当执行的命令以非零状态退出时。默认: False 。。。注意:此设置对异常没有影响,异常仍将被引发,通常捆绑在 ThreadException 对象(如果它们由IO辅助线程引发)。同样, WatcherError 提出的例外情况 StreamWatcher 实例也将忽略此设置,并且通常捆绑在内部 Failure 对象(以便保留执行上下文)。同上 CommandTimedOut -基本上,任何阻止命令实际进入“带退出代码退出”的操作都会忽略此标志。

  • watchers -- 一份名单 StreamWatcher 实例,这些实例将用于扫描程序 stdoutstderr 并可将其写入其 stdin (通常 bytes 对象)以响应模式或其他试探法。看见 自动响应程序输出 有关此功能的详细信息,请参阅。默认: []

返回:

Result ,或其子类。

加薪:

UnexpectedExit ,如果命令退出非零,并且 warn 曾经是 False

加薪:

Failure ,如果命令甚至没有干净地退出,例如,如果 StreamWatcher 已提高 WatcherError

加薪:

ThreadException (如果后台I/O线程遇到除 WatcherError )。

在 1.0 版本加入.

make_promise() Promise

返回一个 Promise 允许对生命周期的其余部分进行异步控制。

在 1.4 版本加入.

create_io_threads() Tuple[Dict[Callable, ExceptionHandlingThread], List[str], List[str]]

创建并返回IO线程工作对象的字典。

调用方需要处理持久化和/或启动包装的线程。

generate_result(**kwargs: Any) Result

创建并返回合适的 Result 实例从给定的 kwargs

子类可能希望重写它,以便操纵事物或生成 Result 子类(例如,除了默认类之外还包含其他元数据的子类)。

在 1.0 版本加入.

read_proc_output(reader: Callable) Generator[str, None, None]

从子进程的OUT/ERR流中反复读取和解码字节。

参数:

reader -- 文字读取器函数/Partial,包装所讨论的实际流对象,它需要读取许多字节,并返回相同数量的字节(或 None )。 reader 应该是对任一项的引用 read_proc_stdoutread_proc_stderr ,它执行特定于平台/库的实际读取调用。

返回:

产生弦的发电机。具体地说,每个结果字符串都是解码的结果 read_chunk_size 从子进程的OUT/ERR流读取的字节数。

在 1.0 版本加入.

write_our_output(stream: IO, string: str) None

stringstream

也可呼叫 .flush() 在……上面 stream 以确保真正的终端流不会被缓冲。

参数:
  • stream -- 一个类似文件的流对象,映射到 out_streamerr_stream 的参数 run

  • string -- Unicode字符串对象。

返回:

None

在 1.0 版本加入.

handle_stdout(buffer_: List[str], hide: bool, output: IO) None

读取进程的stdout,存储到缓冲区&打印/解析。

旨在用作线程目标。仅当子进程中的所有标准输出都已读取时才终止。

参数:
  • buffer -- 与主线程共享的捕获缓冲区。

  • hide (bool) -- 是否将数据重放到 output

  • output -- 不隐藏时要写入数据的输出流(类似文件的对象)。

返回:

None

在 1.0 版本加入.

handle_stderr(buffer_: List[str], hide: bool, output: IO) None

读取进程的stderr,存储到缓冲区&打印/解析。

等同于 handle_stdout 除了从中读取的流;有关API的详细信息,请参阅其文档字符串。

在 1.0 版本加入.

read_our_stdin(input_: IO) str | None

从本地标准输入流中读取和解码字节。

参数:

input -- 要从中读取的实际流对象。映射到 in_stream 在……里面 run ,通常也会是这样 sys.stdin ,但可以是任何类似流的对象。

返回:

Unicode字符串,对读取的字节进行解码的结果(如果管道已关闭/到达EOF,则这可能是空字符串);或 None 如果标准输入还没有准备好阅读。

在 1.0 版本加入.

handle_stdin(input_: IO, output: IO, echo: bool = False) None

读取本地标准输入,根据需要复制到进程的标准输入。

旨在用作线程目标。

备注

因为实际终端stdin流没有明确定义的“end”,所以如果检测到这样的流(基于可调用的 .fileno() )此方法将等待直到 program_finished 已设置,然后终止。

当流看起来不是来自终端时,与 handle_stdout -流只是简单地 read() 直到它返回空值。

参数:
  • input -- 要从中读取的流(类似文件的对象)。

  • output -- 可能发生回显的流(类似文件的对象)。

  • echo (bool) -- 用于标准输入-标准输出回显的用户覆盖选项。

返回:

None

在 1.0 版本加入.

should_echo_stdin(input_: IO, output: IO) bool

确定数据是否从 input_ 应该回响到 output

使用者 handle_stdin ;测试以下对象的属性 input_output

参数:
  • input -- 输入流(类似文件的对象)。

  • output -- 输出流(类文件对象)。

返回:

A bool

在 1.0 版本加入.

respond(buffer_: List[str]) None

中的模式写入程序的标准输入 buffer_

这些模式和响应是由 StreamWatcher 实例中的 watchers 粗鲁的 run -请参见 自动响应程序输出 了解概念性概述。

参数:

buffer -- 此线程的特定IO流的捕获缓冲区。

返回:

None

在 1.0 版本加入.

generate_env(env: Dict[str, Any], replace_env: bool) Dict[str, Any]

根据用户输入和行为返回合适的环境字典。

参数:
  • env (dict) -- 提供覆盖或完整环境的字典,视情况而定。

  • replace_env (bool) -- 是否 env 更新或用来代替的值 os.environ

返回:

Shell环境变量的词典。

在 1.0 版本加入.

should_use_pty(pty: bool, fallback: bool) bool

执行是否应该尝试使用伪终端?

参数:
  • pty (bool) -- 用户是否显式请求PTY。

  • fallback (bool) -- 在以下情况下,是否应允许退回到非Pty执行 pty=True 但无法分配PTY。

在 1.0 版本加入.

property has_dead_threads: bool

检测是否有任何IO线程似乎已意外终止。

在流程完成等待期间使用(传入 wait )以确保在IO处理线程出错/死亡时不会死锁我们的子进程。

返回:

True 如果任何线程似乎已因异常而终止, False 否则的话。

在 1.0 版本加入.

wait() None

阻止,直到正在运行的命令似乎已退出。

返回:

None

在 1.0 版本加入.

write_proc_stdin(data: str) None

写入编码 data 到正在运行的进程的stdin。

参数:

data -- Unicode字符串。

返回:

None

在 1.0 版本加入.

decode(data: bytes) str

破译一些 data 字节,返回Unicode。

在 1.0 版本加入.

property process_is_finished: bool

确定我们的子进程是否已终止。

备注

此方法的实现应该是非阻塞的,因为它在查询/轮询循环中使用。

返回:

True 如果子进程已完成运行, False 否则的话。

在 1.0 版本加入.

start(command: str, shell: str, env: Dict[str, Any]) None

启动执行 command (通过 shellenv )。

通常,这意味着使用分叉子进程或请求在远程系统上开始执行。

在大多数情况下,此方法还将设置在其他方法中使用的特定于子类的成员变量 wait 和/或 returncode

参数:
  • command (str) -- 要执行的命令字符串。

  • shell (str) -- 执行时使用的Shell程序 command

  • env (dict) -- 用于准备Shell环境的环境字典。

在 1.0 版本加入.

start_timer(timeout: int) None

启动计时器以 kill 我们的子流程之后 timeout 几秒钟。

read_proc_stdout(num_bytes: int) bytes | None

朗读 num_bytes 来自正在运行的进程的stdout流。

参数:

num_bytes (int) -- 最大要读取的字节数。

返回:

字符串/字节对象。

在 1.0 版本加入.

read_proc_stderr(num_bytes: int) bytes | None

朗读 num_bytes 来自正在运行的进程的stderr流。

参数:

num_bytes (int) -- 最大要读取的字节数。

返回:

字符串/字节对象。

在 1.0 版本加入.

close_proc_stdin() None

关闭正在运行的进程‘stdin。

返回:

None

在 1.3 版本加入.

default_encoding() str

返回一个字符串,该字符串指定子过程流的预期编码。

此返回值应适合由编码/解码方法使用。

在 1.0 版本加入.

send_interrupt(interrupt: KeyboardInterrupt) None

向正在运行的子进程提交中断信号。

在几乎所有实现中,默认行为都是所需的:提交  子进程的stdin管道。但是,我们将其保留为公共方法,以防需要增加或替换此默认值。

参数:

interrupt -- 本地来源的 KeyboardInterrupt 导致方法调用。

返回:

None

在 1.0 版本加入.

returncode() int | None

返回命令执行产生的数字返回/退出代码。

返回:

int ,如果可以确定任何合理的返回代码,或者 None 在这种情况下,这是不可能的。

在 1.0 版本加入.

stop() None

如有必要,执行最终清理。

此方法在 finally 子句中的子句 run 方法。根据子类的不同,它可能是无操作的,也可能执行关闭网络连接或打开文件等操作。

返回:

None

在 1.0 版本加入.

kill() None

强制终止子进程。

通常仅由超时功能使用。

这通常是一种“尽力而为”的尝试,例如,远程子进程通常必须满足于简单地关闭网络连接的本地端,并希望远程端最终获得消息。

property timed_out: bool

退货 True 如果子进程因超时而停止。

在 1.3 版本加入.

__weakref__

对象的弱引用列表

class invoke.runners.Local(context: Context)

在子进程中的本地系统上执行命令。

备注

当在没有控制终端的情况下执行调用本身时(例如,当 sys.stdin 缺乏一个有用的 fileno ),则不可能将我们的PTY句柄呈现给本地子进程。在这种情况下, Local 会退回到表现得好像 pty=False (根据降级执行总比没有好的理论),并向stderr打印一个警告。

要禁用此行为,请执行以下操作 fallback=False

在 1.0 版本加入.

__init__(context: Context) None

创建一个新的流道,并在某些流道上添加句柄 Context

参数:

context -- 一个 Context 实例,用于传输默认选项并提供对其他上下文信息的访问(例如,面向远程的 Runner 可能需要一个 Context 包含有关主机名和端口的信息的子类。)..注:: Context 习惯于 Runner 实例 must 包含的默认配置值 Runner 有问题的班级。这至少意味着每个缺省值 Runner.run 关键字参数,如 echowarn

抛出:

exceptions.ValueError -- 如果不是所有预期的缺省值都在 context

should_use_pty(pty: bool = False, fallback: bool = True) bool

执行是否应该尝试使用伪终端?

参数:
  • pty (bool) -- 用户是否显式请求PTY。

  • fallback (bool) -- 在以下情况下,是否应允许退回到非Pty执行 pty=True 但无法分配PTY。

在 1.0 版本加入.

read_proc_stdout(num_bytes: int) bytes | None

朗读 num_bytes 来自正在运行的进程的stdout流。

参数:

num_bytes (int) -- 最大要读取的字节数。

返回:

字符串/字节对象。

在 1.0 版本加入.

read_proc_stderr(num_bytes: int) bytes | None

朗读 num_bytes 来自正在运行的进程的stderr流。

参数:

num_bytes (int) -- 最大要读取的字节数。

返回:

字符串/字节对象。

在 1.0 版本加入.

close_proc_stdin() None

关闭正在运行的进程‘stdin。

返回:

None

在 1.3 版本加入.

start(command: str, shell: str, env: Dict[str, Any]) None

启动执行 command (通过 shellenv )。

通常,这意味着使用分叉子进程或请求在远程系统上开始执行。

在大多数情况下,此方法还将设置在其他方法中使用的特定于子类的成员变量 wait 和/或 returncode

参数:
  • command (str) -- 要执行的命令字符串。

  • shell (str) -- 执行时使用的Shell程序 command

  • env (dict) -- 用于准备Shell环境的环境字典。

在 1.0 版本加入.

kill() None

强制终止子进程。

通常仅由超时功能使用。

这通常是一种“尽力而为”的尝试,例如,远程子进程通常必须满足于简单地关闭网络连接的本地端,并希望远程端最终获得消息。

property process_is_finished: bool

确定我们的子进程是否已终止。

备注

此方法的实现应该是非阻塞的,因为它在查询/轮询循环中使用。

返回:

True 如果子进程已完成运行, False 否则的话。

在 1.0 版本加入.

returncode() int | None

返回命令执行产生的数字返回/退出代码。

返回:

int ,如果可以确定任何合理的返回代码,或者 None 在这种情况下,这是不可能的。

在 1.0 版本加入.

stop() None

如有必要,执行最终清理。

此方法在 finally 子句中的子句 run 方法。根据子类的不同,它可能是无操作的,也可能执行关闭网络连接或打开文件等操作。

返回:

None

在 1.0 版本加入.

class invoke.runners.Result(stdout: str = '', stderr: str = '', encoding: str | None = None, command: str = '', shell: str = '', env: Dict[str, Any] | None = None, exited: int = 0, pty: bool = False, hide: Tuple[str, ...] = ())

用于存储有关命令执行结果的信息的容器。

所有参数都公开为具有相同名称和类型的属性。

参数:
  • stdout (str) -- 子进程的标准输出。

  • stderr (str) -- 相同于 stdout 但包含标准错误(除非流程是通过PTY调用的,在这种情况下,它将为空;请参见 Runner.run 。)

  • encoding (str) -- 本地Shell环境使用的字符串编码。

  • command (str) -- 已执行的命令。

  • shell (str) -- 用于执行的Shell二进制文件。

  • env (dict) -- 用于执行的Shell环境。(缺省值为空词典, {} ,不是 None 如签名所示。)

  • exited (int) -- 表示子进程的退出/返回代码的整数。。。注::这可能是 None 子进程未运行到完成的情况下,例如自动响应失败或到达超时时。

  • pty (bool) -- 描述是否使用PTY调用子流程的布尔值;请参见 Runner.run

  • hide (tuple) -- 流名称的元组(无、一个或两个 ('stdout', 'stderr') ),在执行生成命令时对用户隐藏;这是从 hide 的参数 Runner.run 。例如, run('command', hide='stdout') 将产生一个 Result 哪里 result.hide == ('stdout',)hide=Truehide='both' 在.中的结果 result.hide == ('stdout', 'stderr')hide=False (缺省设置)生成 result.hide == () (空元组。)

备注

Result 对象的真实性评价等同于其 ok 属性的值。因此,可以使用类似以下内容的快捷表达式:

if run("some shell command"):
    do_something()
else:
    handle_problem()

然而,请记住 Zen of Python #2

在 1.0 版本加入.

__init__(stdout: str = '', stderr: str = '', encoding: str | None = None, command: str = '', shell: str = '', env: Dict[str, Any] | None = None, exited: int = 0, pty: bool = False, hide: Tuple[str, ...] = ())
property return_code: int

的别名 .exited

在 1.0 版本加入.

__str__() str

返回str(Self)。

__repr__() str

返回epr(Self)。

property ok: bool

相当于的布尔值 exited == 0

在 1.0 版本加入.

property failed: bool

的反面 ok

I.e., True 如果程序以非零返回代码退出,并且 False 否则的话。

在 1.0 版本加入.

tail(stream: str, count: int = 10) str

退还最后一张 count 一行行 stream ,加上前导空格。

参数:
  • stream (str) -- 某些捕获的流属性的名称,例如 "stdout"

  • count (int) -- 要保留的行数。

在 1.3 版本加入.

__weakref__

对象的弱引用列表

class invoke.runners.Promise(runner: Runner)

对未来的承诺 Result ,是由异步执行产生的。

此类的主要API成员为 join ;实例也可以用作上下文管理器,它将自动调用 join 当数据块退出时。在这种情况下,上下文管理器产生 self

Promise 还公开了许多 Result 属性,特别是派生自 run 而不是命令执行的结果。例如, command 是在这里复制的,但是 stdout 不是的。

在 1.4 版本加入.

__init__(runner: Runner) None

创造新的承诺。

参数:

runner -- 飞行中的 Runner 做出这一承诺的例子。必须已经启动子进程并启动IO线程。

join() Result

块,直到关联子进程退出,返回/引发结果。

它的作用与同步执行的 run ,即:

  • 各种后台线程(例如IO工作线程)本身被联接;

  • 如果子进程正常退出,则会引发 Result 被退回;

  • 在任何其他情况下(不可预见的异常、IO子线程 ThreadExceptionFailureWatcherError )此处提出了相关的例外情况。

看见 run 文档或相关类的文档,以获取更多详细信息。

invoke.runners.default_encoding() str

获取明显的解释器本地默认文本编码。

通常用作基线,用于必须对未知(但可能是文本)字节使用某种编码,并且用户未指定覆盖的情况。