当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.strings.unicode_transcode用法及代码示例


将输入文本从源编码转码为目标编码。

用法

tf.strings.unicode_transcode(
    input, input_encoding, output_encoding, errors='replace',
    replacement_char=65533, replace_control_characters=False, name=None
)

参数

  • input Tensor 类型为 string 。要处理的文本。可以有任何形状。
  • input_encoding 一个string。输入字符串的文本编码。这是 ICU ucnv 算法转换器支持的任何编码。示例:"UTF-16", "US ASCII", "UTF-8"
  • output_encoding string 来自:"UTF-8", "UTF-16-BE", "UTF-32-BE"。要在输出中使用的 unicode 编码。必须是 "UTF-8", "UTF-16-BE", "UTF-32-BE" 之一。 Multi-byte 编码将是大端的。
  • errors 一个可选的 string 来自: "strict", "replace", "ignore" 。默认为 "replace" 。在输入中发现无效格式时的错误处理策略。 'strict' 的值将导致操作对任何无效输入格式产生 InvalidArgument 错误。 'replace' 的值(默认值)将导致操作将输入中的任何无效格式替换为 replacement_char 代码点。 'ignore' 的值将导致操作跳过输入中的任何无效格式并且不产生相应的输出字符。
  • replacement_char 一个可选的int.默认为65533.用于代替输入中任何无效格式的替换字符代码点errors='replace'.可以使用任何有效的 unicode 代码点。默认值是默认的 unicode 替换字符是 0xFFFD 或 U+65533。)

    请注意,对于 UTF-8,传递可表示为 1 个字节的替换字符(例如 ' ')将保留与源的字符串对齐,因为无效字节将被替换为 1 个字节的替换。对于 UTF-16-BE 和 UTF-16-LE,任何 1 或 2 字节替换字符都将保持与源的字节对齐。

  • replace_control_characters 可选的 bool 。默认为 False 。是否将 C0 控制字符 (00-1F) 替换为 replacement_char 。默认为假。
  • name 操作的名称(可选)。

返回

  • Tensor 类型为 string

输入是任意形状的字符串张量。输出是一个包含转码字符串的相同形状的字符串张量。输出字符串始终是有效的 unicode。如果输入包含无效的编码位置,errors 属性设置如何处理它们的策略。如果使用默认的 error-handling 策略,则输出中的无效格式将被 replacement_char 替换。如果错误策略是 ignore ,则输入中的任何无效编码位置都将被跳过并且不包含在输出中。如果它设置为strict,那么任何无效的格式都会导致 InvalidArgument 错误。

此操作可与 ​​output_encoding = input_encoding 一起使用,以强制输入正确的格式,即使它们已经采用所需的编码。

如果输入的前缀是确定编码所需的字节顺序标记(例如,如果编码是 UTF-16 并且 BOM 指示大端序),则该 BOM 将被消耗并且不会发送到输出中。如果输入编码标有显式字节序(例如 UTF-16-BE),则 BOM 被解释为不间断空格并保留在输出中(包括始终用于 UTF-8)。

最终结果是,如果输入被标记为显式字节序,则转码将忠实于源中的所有代码点。如果未使用显式字节序进行标记,则 BOM 不被视为字符串本身的一部分,而是作为元数据,因此不会保留在输出中。

例子:

tf.strings.unicode_transcode(["Hello", "TensorFlow", "2.x"], "UTF-8", "UTF-16-BE")
<tf.Tensor:shape=(3,), dtype=string, numpy=
array([b'\x00H\x00e\x00l\x00l\x00o',
       b'\x00T\x00e\x00n\x00s\x00o\x00r\x00F\x00l\x00o\x00w',
       b'\x002\x00.\x00x'], dtype=object)>
tf.strings.unicode_transcode(["A", "B", "C"], "US ASCII", "UTF-8").numpy()
array([b'A', b'B', b'C'], dtype=object)

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.strings.unicode_transcode。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。