tf.raw_ops.UnicodeTranscode
Транскодирует входной текст из исходной кодировки в целевую кодировку.
tf.raw_ops.UnicodeTranscode(
input,
input_encoding,
output_encoding,
errors='replace',
replacement_char=65533,
replace_control_characters=False,
name=None
)
Входной параметр — тензор строк произвольной формы. Выходной параметр — тензор строк той же формы, содержащий закодированные строки. Строки вывода всегда являются допустимыми строками Unicode. Если вход содержит недопустимые позиции кодирования, атрибут errors задает политику обработки этих недопустимых позиций. При использовании политики обработки ошибок по умолчанию недопустимые форматы в выводе будут заменены символом replacement_char. Если политика обработки ошибок — ignore, любые недопустимые позиции кодирования во входных данных будут пропущены и не будут включены в выходные данные. Если политика установлена в strict, любые недопустимые форматы приведут к ошибке InvalidArgument.
Эта операция может быть использована с output_encoding = input_encoding для обеспечения правильного форматирования входных данных даже в том случае, если они уже находятся в требуемой кодировке.
Если вход начинается с маркера порядка байтов (BOM), необходимого для определения кодировки (например, если кодировка 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)| Аргументы | |
|---|---|
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". Многобайтовые кодировки будут иметь порядок байтов «большая эндианность». |
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. По умолчанию false. |
name | Имя операции (необязательно). |
| Возвращаемые значения | |
|---|---|
Tensor типа string. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/raw_ops/UnicodeTranscode