將輸入文本從源編碼轉碼為目標編碼。
用法
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)
相關用法
- Python tf.strings.unicode_decode_with_offsets用法及代碼示例
- Python tf.strings.unicode_decode用法及代碼示例
- Python tf.strings.unicode_encode用法及代碼示例
- Python tf.strings.unicode_split用法及代碼示例
- Python tf.strings.unicode_split_with_offsets用法及代碼示例
- Python tf.strings.unicode_script用法及代碼示例
- Python tf.strings.unsorted_segment_join用法及代碼示例
- Python tf.strings.upper用法及代碼示例
- Python tf.strings.substr用法及代碼示例
- Python tf.strings.reduce_join用法及代碼示例
- Python tf.strings.regex_full_match用法及代碼示例
- Python tf.strings.regex_replace用法及代碼示例
- Python tf.strings.length用法及代碼示例
- Python tf.strings.bytes_split用法及代碼示例
- Python tf.strings.as_string用法及代碼示例
- Python tf.strings.lower用法及代碼示例
- Python tf.strings.split用法及代碼示例
- Python tf.strings.join用法及代碼示例
- Python tf.strings.to_hash_bucket用法及代碼示例
- Python tf.strings.ngrams用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.strings.unicode_transcode。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。