tf.strings.unicode_transcode
Преобразовать входной текст из исходной кодировки в целевую кодировку.
tf.strings.unicode_transcode(
input: Annotated[Any, _atypes.String],
input_encoding: str,
output_encoding: str,
errors: str = 'replace',
replacement_char: int = 65533,
replace_control_characters: bool = False,
name=None
) -> Annotated[Any, _atypes.String]
Используется в блокнотах
| Используется в руководстве |
|---|
Входной параметр — это тензор строк любой формы. Выходной параметр — это тензор строк той же формы, содержащий преобразованные строки. Выходные строки всегда являются допустимым 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)| Args | |
|---|---|
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". Многобайтовые кодировки будут big-endian. |
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 | Имя операции (необязательно). |
| Returns | |
|---|---|
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/strings/unicode_transcode