mbstate_t(3type)

الاسم
mbstate_t - حالة تحويل المحارف متعددة البايت

المكتبة
مكتبة سي القياسية (libc)

موجز
#include <wchar.h>

typedef /* ... */  mbstate_t;

الوصف
يستخدم تحويل المحارف بين التمثيل متعدد البايت وتمثيل المحارف العريضة حالة تحويل، من النوع mbstate_t. يستخدم تحويل سلسلة محارف آلة حالة محدودة؛ عندما يُقاطع بعد التحويل الكامل لعدد من المحارف، قد يحتاج إلى حفظ حالة لمعالجة المحارف المتبقية. تُحتاج حالة التحويل هذه من أجل ترميزات مثل ISO/IEC 2022 وUTF-7.

الحالة المبدئية هي الحالة في بداية تحويل سلسلة محارف. يوجد نوعان من الحالة: تلك المستخدمة بواسطة دوال تحويل متعدد البايت إلى محارف عريضة، مثل mbsrtowcs(3)، وتلك المستخدمة بواسطة دوال تحويل محارف عريضة إلى متعدد البايت، مثل wcsrtombs(3)، لكن كلاهما يتسعان في mbstate_t، وكلاهما لهما نفس التمثيل لحالة مبدئية.

بالنسبة للترميزات 8-بت، جميع الحالات مكافئة للحالة المبدئية. بالنسبة للترميزات متعددة البايت مثل UTF-8، EUC-*، BIG5، أو SJIS، دوال تحويل المحارف العريضة إلى متعدد البايت لا تُنتج حالات غير مبدئية أبدًا، لكن دوال تحويل متعدد البايت إلى محارف عريضة مثل mbrtowc(3) تُنتج حالات غير مبدئية عندما تُقاطع في منتصف محرف.

طريقة واحدة محتملة لإنشاء mbstate_t في حالة مبدئية هي ضبطه على الصفر:

    mbstate_t state;
    memset(&state, 0, sizeof(state));

على لينكس، يعمل التالي أيضًا، لكن قد يُولّد تحذيرات المترجم:

    mbstate_t state = { 0 };

المعايير
C11، ‏POSIX.1-2024.

التاريخ
SUSv2, C99, POSIX.1-2001.

انظر أيضًا
mbrlen(3)، mbrtowc(3)، mbsinit(3)، mbsrtowcs(3)، wcrtomb(3)، wcsrtombs(3)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.