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, чтобы обеспечить корректность входных данных, даже если они уже представлены в требуемой кодировке.
Если входные данные начинаются с маркера порядка байтов, необходимого для определения кодировки (например, если кодировка — 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 передача символа замены, представимого одним байтом, например ' ', сохраняет выравнивание строки относительно исходной, поскольку недопустимые байты заменяются однобайтовым символом. Для 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/strings/unicode_transcode