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 указывает на порядок байтов big-endian), то этот 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 | A Tensor типа string. Текст для обработки. Может иметь любую форму. |
input_encoding | A string. Кодировка текста входных строк. Это любая из кодировок, поддерживаемых алгоритмическими конвертерами ICU ucnv. Примеры: "UTF-16", "US ASCII", "UTF-8". |
output_encoding | A string из: "UTF-8", "UTF-16-BE", "UTF-32-BE". Кодировка Unicode для использования в выводе. Должна быть одной из "UTF-8", "UTF-16-BE", "UTF-32-BE". Многобайтовые кодировки будут big-endian. |
errors | Необязательный string из: "strict", "replace", "ignore". По умолчанию "replace". Политика обработки ошибок при обнаружении недопустимого формата во входных данных. Значение 'strict' заставит операцию выдать ошибку InvalidArgument при любом некорректном формате входных данных. Значение 'replace' (по умолчанию) заставит операцию заменить любой недопустимый формат во входных данных на replacement_char кодовую точку. Значение 'ignore' заставит операцию пропустить любой недопустимый формат входных данных и не вывести соответствующий символ. |
replacement_char | Необязательный int. По умолчанию 65533. Заменять ли управляющие символы C0 (00-1F) на replacement_char. По умолчанию false. |
replace_control_characters | Необязательный bool. По умолчанию False. Кодовая точка символа замены, которая будет использоваться вместо любого недопустимого формата во входных данных, когда errors='replace'. Может быть использована любая допустимая кодовая точка Unicode. Значение по умолчанию — стандартный символ замены Unicode 0xFFFD или U+65533.) Обратите внимание, что для UTF-8 передача символа замены, выразимого в 1 байте, например, ' ', сохранит выравнивание строки со исходником, поскольку некорректные байты будут заменены символом замены из 1 байта. Для UTF-16-BE и UTF-16-LE любой символ замены из 1 или 2 байт сохранит байтовое выравнивание со исходником. |
name | Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
A Tensor типа string. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/raw_ops/UnicodeTranscode