تدفق التوتر:: العمليات:: UnicodeTranscode

#include <string_ops.h>

تحويل نص الإدخال من ترميز المصدر إلى ترميز الوجهة.

ملخص

الإدخال عبارة عن موتر سلسلة من أي شكل. الإخراج عبارة عن موتر سلسلة من نفس الشكل يحتوي على السلاسل المحولة. سلاسل الإخراج صالحة دائمًا لرمز Unicode. إذا كان الإدخال يحتوي على مواضع ترميز غير صالحة، فإن سمة errors تحدد سياسة كيفية التعامل معها. إذا تم استخدام سياسة معالجة الأخطاء الافتراضية، فسيتم استبدال التنسيق غير الصالح في الإخراج بواسطة replacement_char . إذا كانت سياسة الأخطاء هي ignore ، فسيتم تخطي أي مواضع ترميز غير صالحة في الإدخال ولن يتم تضمينها في الإخراج. إذا تم ضبطه على strict ، فإن أي تنسيق غير صالح سيؤدي إلى خطأ InvalidArgument.

يمكن استخدام هذه العملية مع output_encoding = input_encoding لفرض التنسيق الصحيح للمدخلات حتى لو كانت بالفعل بالتشفير المطلوب.

إذا كان الإدخال مسبوقًا بعلامة ترتيب البايت اللازمة لتحديد التشفير (على سبيل المثال، إذا كان التشفير هو UTF-16 وتشير قائمة مكونات الصنف إلى نهاية كبيرة)، فسيتم استهلاك قائمة مكونات الصنف هذه ولن يتم إرسالها إلى المخرجات. إذا تم تمييز تشفير الإدخال بعلامة endianness صريحة (على سبيل المثال UTF-16-BE)، فسيتم تفسير قائمة مكونات الصنف على أنها مسافة غير منقسمة ويتم الاحتفاظ بها في الإخراج (بما في ذلك UTF-8 دائمًا).

والنتيجة النهائية هي أنه إذا تم وضع علامة على الإدخال على أنه نهاية صريحة، فإن تحويل الشفرة يكون مطابقًا لجميع نقاط التشفير في المصدر. إذا لم يتم وضع علامة endianness صريحة عليه، فإن BOM لا يعتبر جزءًا من السلسلة نفسها ولكن كبيانات وصفية، وبالتالي لا يتم الاحتفاظ به في الإخراج.

أمثلة:

tf.strings.unicode_transcode(["Hello"، "TensorFlow"، "2.x"]، "UTF-8"، "UTF-16-BE") tf.strings.unicode_transcode(["A"، "B"، "C"]، "US ASCII"، "UTF-8").numpy() array([b'A', b'B', b' C']، dtype = كائن)

الحجج:

  • النطاق: كائن النطاق
  • الإدخال: النص المراد معالجته. يمكن أن يكون لها أي شكل.
  • input_encoding: ترميز النص لسلاسل الإدخال. هذا هو أي من الترميزات التي تدعمها محولات خوارزمية ICU ucnv. أمثلة: "UTF-16", "US ASCII", "UTF-8" .
  • output_encoding: ترميز Unicode الذي سيتم استخدامه في الإخراج. يجب أن يكون واحدًا من "UTF-8", "UTF-16-BE", "UTF-32-BE" . ستكون الترميزات متعددة البايت ذات نهاية كبيرة.

السمات الاختيارية (انظر Attrs ):

  • الأخطاء: خطأ في التعامل مع السياسة عند العثور على تنسيق غير صالح في الإدخال. ستؤدي قيمة "صارم" إلى ظهور خطأ InvalidArgument في أي تنسيق إدخال غير صالح. ستؤدي قيمة 'replace' (القيمة الافتراضية) إلى استبدال العملية لأي تنسيق غير صالح في الإدخال بنقطة replacement_char . ستؤدي قيمة "تجاهل" إلى تخطي العملية لأي تنسيق غير صالح في الإدخال وعدم إنتاج أي حرف إخراج مطابق.
  • استبدال_شار: نقطة رمز الحرف البديلة التي سيتم استخدامها بدلاً من أي تنسيق غير صالح في الإدخال عندما errors='replace' . يمكن استخدام أي نقطة ترميز Unicode صالحة. القيمة الافتراضية هي أن حرف استبدال Unicode الافتراضي هو 0xFFFD أو U+65533.)

لاحظ أنه بالنسبة إلى UTF-8، فإن تمرير حرف بديل يمكن التعبير عنه ببايت واحد، مثل ' '، سيحافظ على محاذاة السلسلة إلى المصدر حيث سيتم استبدال البايتات غير الصالحة باستبدال بايت واحد. بالنسبة إلى UTF-16-BE وUTF-16-LE، فإن أي حرف بديل مكون من 1 أو 2 بايت سيحافظ على محاذاة البايت مع المصدر.

  • replace_control_characters: ما إذا كان سيتم استبدال أحرف التحكم C0 (00-1F) replacement_char . الافتراضي خطأ.

العوائد:

  • Output : موتر سلسلة يحتوي على نص Unicode مشفر باستخدام output_encoding .

البنائين والمدمرين

UnicodeTranscode (const :: tensorflow::Scope & scope, :: tensorflow::Input input, StringPiece input_encoding, StringPiece output_encoding)
UnicodeTranscode (const :: tensorflow::Scope & scope, :: tensorflow::Input input, StringPiece input_encoding, StringPiece output_encoding, const UnicodeTranscode::Attrs & attrs)

الصفات العامة

operation
output

الوظائف العامة

node () const
::tensorflow::Node *
operator::tensorflow::Input () const
operator::tensorflow::Output () const

وظائف ثابتة العامة

Errors (StringPiece x)
ReplaceControlCharacters (bool x)
ReplacementChar (int64 x)

الهياكل

Tensorflow:: ops:: UnicodeTranscode:: Attrs

محددات السمات الاختيارية لـ UnicodeTranscode .

الصفات العامة

عملية

Operation operation

الإخراج

::tensorflow::Output output

الوظائف العامة

UnicodeTranscode

 UnicodeTranscode(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  StringPiece input_encoding,
  StringPiece output_encoding
)

UnicodeTranscode

 UnicodeTranscode(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  StringPiece input_encoding,
  StringPiece output_encoding,
  const UnicodeTranscode::Attrs & attrs
)

العقدة

::tensorflow::Node * node() const 

المشغل::tensorflow::الإدخال

 operator::tensorflow::Input() const 

المشغل::tensorflow::الإخراج

 operator::tensorflow::Output() const 

وظائف ثابتة العامة

أخطاء

Attrs Errors(
  StringPiece x
)

استبدال أحرف التحكم

Attrs ReplaceControlCharacters(
  bool x
)

استبدالChar

Attrs ReplacementChar(
  int64 x
)