البرمجة

دليل ترميز Base64 وفكّه: UTF-8 وBase64url والأخطاء

ToolMellow ·

يمثّل Base64 البايتات بمجموعة صغيرة من المحارف القابلة للطباعة. لترميز النص، يحوّل ToolMellow أولًا نص Unicode السليم إلى بايتات UTF-8؛ وعند فك الترميز، يشترط أن تمثّل تلك البايتات نص UTF-8 صالحًا. الصق الإدخال، واختر Base64 القياسي أو الآمن للروابط، ثم اضغط «ترميز» أو «فك الترميز». يجري التحويل محليًا في متصفحك.

يشرح هذا الدليل بدقة الصيغة التي تقبلها أداة النصوص، مع أمثلة مفيدة وأخطاء شائعة. Base64 ترميز قابل للعكس، وليس تشفيرًا أو ضغطًا. نجاح التحويل لا يثبت أصالة رمز مصادقة، ولا يؤمّن كلمة مرور، ولا يثبت سلامة ملف. الأمثلة أدناه توضيحات ثابتة، وليست قياسات لبياناتك.

ترميز Base64 وفكّه

كيفية ترميز النص أو فك ترميزه

افتح أداة ترميز Base64 وفكّه، والصق نصًا أو سلسلة مرمّزة. اترك خيار Base64 الآمن للروابط معطّلًا لاستخدام المجموعة القياسية، أو فعّله إذا كانت الصيغة المستقبِلة تتطلب Base64url. يحوّل زر «ترميز» الإدخال كاملًا إلى Base64، ويعيده زر «فك الترميز» إلى نص UTF-8. الكتابة وحدها لا تشغّل التحويل.

اقرأ النتيجة قبل استخدام «انسخ النتيجة» أو «تنزيل». يستبدل «استخدم النتيجة كإدخال» محتوى المحرر بنتيجة تقع ضمن حد الإدخال؛ ويمكنك بعدها اختيار العملية المعاكسة لاختبار التحويل ذهابًا وإيابًا. تعديل الإدخال أو خيارات التحويل يُبطل النتيجة السابقة. يغيّر «التفاف الأسطر» طريقة عرض الأسطر، ولا يغيّر المحارف المرمّزة أو يُدرج فواصل أسطر.

  • ابدأ بمثال معلوم مثل foo وZm9v قبل تشخيص قيمة مستخدمة في تطبيق.
  • اختر مجموعة المحارف التي يتطلبها تطبيقك؛ فالحروف والأرقام المشتركة وحدها قد لا تكشف نوع السلسلة.
  • احتفظ بالأصل إذا كان تطابق البايتات مهمًا. فقد يغيّر استيراد النص وترميز المحارف وفواصل الأسطر الإضافية ما ترمّزه.

ماذا يفعل Base64 بالبايتات؟

يقسّم Base64 كل مجموعة من ثلاثة بايتات إلى أربع قيم، كل منها من ست بتات، ثم يربط هذه القيم بمحارف مجموعة الترميز. تحتاج المجموعة الأخيرة القصيرة إلى معالجة خاصة وقد تستخدم الحشو. الحروف الظاهرة تمثيل لبايتات الإدخال، وليست لغة جديدة أو مفتاحًا سريًا.

تتضمن أمثلة المجموعة القياسية هذه السلسلة الفارغة ونهايات ASCII من بايت واحد وبايتين وثلاثة بايتات. المسافات وفواصل الأسطر في النص المراد ترميزه بايتات فعلية تغيّر النتيجة. يعيد فك ترميز التمثيل المعياري نفسه نص UTF-8 الأصلي، بما فيه هذه المحارف.

ماذا يفعل Base64 بالبايتات؟
نص UTF-8Base64 القياسي
سلسلة فارغةسلسلة فارغة
fZg==
foZm8=
fooZm9v
HelloSGVsbG8=
😀8J+YgA==

RFC 4648: ‏Base64 وBase64url والحشو والتمثيل المعياري

Base64 القياسي وBase64url

يستخدم النوعان الحروف والأرقام. يستخدم Base64 القياسي + و/ للرمزين الأخيرين في مجموعة المحارف؛ ويستخدم Base64url - و_. يُخرج ToolMellow حشو = في نهاية النص القياسي عند الحاجة، ويحذفه في الوضع الآمن للروابط. مثلًا، يصبح ترميز الرمز التعبيري أعلاه 8J-YgA في الوضع الآمن للروابط.

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

Base64 القياسي وBase64url
الخاصيةالوضع القياسيالوضع الآمن للروابط
الرمزان الأخيران في مجموعة المحارف+ و/- و_
حشو ترميز ToolMellowيُدرج عند الحاجةيُحذف
حشو فك ترميز ToolMellowحشو صحيح أو بلا حشوحشو صحيح أو بلا حشو
رموز مختلطة من النوعينتُرفضتُرفض

RFC 4648: ‏Base64 وBase64url والحشو والتمثيل المعياري

Unicode والرموز التعبيرية وفك ترميز UTF-8

يُحوّل النص عبر UTF-8، لذا يمكن للحروف ذات العلامات والصينية والعربية والرموز التعبيرية أن تعود إلى صورتها الأصلية إذا كان نص Unicode سليمًا. يحسب طول سلسلة JavaScript وحدات ترميز UTF-16، وهي تختلف عن طول UTF-8 بالبايتات. يشغل الرمز 😀 وحدتي UTF-16 وأربعة بايتات UTF-8، وينتج عنه ثمانية محارف Base64 مع الحشو.

يرفض الترميز وحدة بديلة غير مقترنة في Unicode. ويرفض فك الترميز UTF-8 غير الصالح بدل استبدال البايتات التالفة بصمت. تُحفظ علامة BOM في بداية UTF-8 المرمّز بوصفها U+FEFF في السلسلة المفكوكة، وقد لا تظهر في المحرر. وقد يحتوي النص الصالح أيضًا على محارف تحكم أو أشكال مختلفة لتطبيع Unicode. لا يطبّع Base64 النص ولا يجعل تنفيذه آمنًا.

RFC 3629: ترميز محارف UTF-8WHATWG Encoding: ‏TextEncoder وTextDecoder ومعالجة BOMECMAScript: طول السلسلة وisWellFormed

الحشو والمسافات والبتات غير المستخدمة في التمثيل المعياري

الحشو لا يتجاوز محرفَي = في النهاية، ويجب أن يكون الطول مع الحشو قابلًا للقسمة على أربعة. يقبل المفكّك أيضًا إدخالًا بلا حشو إذا كانت نهايته صحيحة، لكن طولًا متبقيًا قدره واحد لا يمكن أن يمثّل بايتًا كاملًا. يفك كل من Zg== وZg إلى f؛ أما Zg= فصيغته غير صحيحة. ينتج عن الإدخال الفارغ ناتج فارغ صالح.

قبل فك الترميز، يحذف ToolMellow محارف TAB وLF وCR وSPACE فقط. ويرفض محرف تغذية الصفحة والتبويب الرأسي والمسافة غير القابلة للفصل وغيرها من محارف المسافات في Unicode. يُفحص حد الإدخال الأصلي قبل هذا الحذف. لذلك فالسلوك أضيق من وعد عام بتجاهل جميع المسافات.

يجب أن تكون البتات غير المستخدمة في محرف الترميز الأخير صفرًا في هذه الأداة. تتحقق الأداة من أن إعادة ترميز البايتات المفكوكة تطابق الإدخال بعد توحيد صيغته وحذف الحشو. يُرفض Zh==، رغم أن مفكّكًا متساهلًا قد ينتج منه البايت نفسه الناتج عن التمثيل المعياري Zg==. يسمح RFC 4648 بهذا الرفض الأكثر صرامة؛ وقبول مفكّك آخر للقيمة لا يثبت أنها بتمثيلها المعياري.

RFC 4648: ‏Base64 وBase64url والحشو والتمثيل المعياريWHATWG Infra: فك ترميز Base64 المتساهلWHATWG HTML: ‏atob وbtoa

كم يزيد الحجم مع Base64، وما الذي يقع ضمن الحدود؟

لعدد n من بايتات الإدخال، يكون طول Base64 مع الحشو 4 × ceil(n / 3) محرفًا. صفر بايت ينتج صفر محرف؛ وبايت واحد ينتج أربعة، وبايتان أربعة، وثلاثة بايتات أربعة. تقترب الزيادة من الثلث مع المدخلات الكبيرة، لكنها ليست 33% بالضبط لكل قيمة. يحذف الناتج الآمن للروابط غير المحشو محرف الحشو الأخير أو المحرفين الأخيرين حيث ينطبق ذلك.

احسب بايتات UTF-8 لمعادلة الحجم، ووحدات ترميز UTF-16 لحد المحرر. تقبل الأداة حتى 1,000,000 وحدة ترميز في الإدخال قبل حذف مسافات فك الترميز. ولا تطبق الحد نفسه على الناتج: ينتج مليون بايت ASCII عددًا قدره 1,333,336 محرفًا مع الحشو. يظل النسخ والتنزيل متاحين، لكن «استخدم النتيجة كإدخال» لا يمكنه تحميل نتيجة تتجاوز حد الإدخال.

كم يزيد الحجم مع Base64، وما الذي يقع ضمن الحدود؟
الحدالقيد أو السلوك الفعلي
إدخال المحرر والتحويلحتى 1,000,000 وحدة ترميز UTF-16
حجم الملف المحلي بالبايتاتأقل من 4,000,000 بايت حصرًا
طول النص المستوردحتى 1,000,000 وحدة ترميز UTF-16
الناتج المرمّزيمكنه تجاوز حد الإدخال؛ ويظل النسخ والتنزيل متاحين

RFC 4648: ‏Base64 وBase64url والحشو والتمثيل المعياريWHATWG Encoding: ‏TextEncoder وTextDecoder ومعالجة BOMECMAScript: طول السلسلة وisWellFormed

فتح ملف نصي لا يعني ترميز ملف ثنائي

يقرأ عنصر اختيار الملف ملفًا محليًا كنص UTF-8 عبر File.text(). يُرفض الملف إذا بلغ حجمه 4,000,000 بايت أو أكثر؛ ويُرفض النص أيضًا إذا تجاوز 1,000,000 وحدة UTF-16 بعد القراءة. لا يرفع التطبيق الملف لإجراء هذا التحويل. امتداد اسم الملف لا يثبت أن بايتاته نص UTF-8.

تزيل قراءة الملف العادية إلى نص علامة BOM في بداية UTF-8، وتستبدل تسلسلات UTF-8 غير السليمة. قد يغيّر ذلك البايتات الأصلية قبل الترميز. وهذا يختلف عن مفكّك Base64، الذي يرفض UTF-8 غير السليم ويحفظ U+FEFF المفكوكة. للصور وملفات PDF والبايتات العشوائية أو استعادة ملف مع تطابق بايتاته، استخدم أداة Base64 إلى ملف المنفصلة عند ملاءمتها؛ مساحة النصوص هذه ليست مُرمّزًا لملفات ثنائية خام.

W3C File API: قراءة Blob كنصWHATWG Encoding: ‏TextEncoder وTextDecoder ومعالجة BOM

لماذا إدخال Base64 غير صالح؟

حدّد أولًا الصيغة المطلوبة وما إذا كان ينبغي أن ينتج عن القيمة نص. أزل الصياغة المحيطة التي يضيفها التطبيق عن قصد، بدل حذف محارف مجهولة حتى يعمل التحويل. لا يستخرج هذا المفكّك تلقائيًا حمولة رابط data أو أجزاء رمز مصادقة أو سلاسل JSON المحاطة بعلامات اقتباس أو HTML. لهذه الأغلفة قواعدها الخاصة للتحليل والتحقق.

إذا كانت مجموعة المحارف وبنية السلسلة صحيحتين لكن البايتات المفكوكة ليست UTF-8، فقد تكون البيانات ملفًا ثنائيًا أو تستخدم ترميز محارف آخر. هذا خطأ يتعلق بنطاق أداة النصوص، وليس دليلًا على تلف بايتات Base64. إذا تعذّر الوصول إلى الحافظة، حدّد النتيجة وانسخها يدويًا. وقد يمنع متصفح غير مدعوم أو عامل متصفح محظور التحويل؛ استخدم متصفحًا حديثًا مدعومًا واقرأ رسالة الخطأ المعروضة.

لماذا إدخال Base64 غير صالح؟
العَرَضالسبب المحتملالفحص التالي المفيد
Aطول نهائي غير ممكنتحقق من نسخ القيمة كاملة
Zg=حشو غير مكتملاستخدم إدخالًا بحشو صحيح أو بلا حشو
Zh==بتات غير مستخدمة قيمتها ليست صفرًاتحقق من المُنتج الأصلي؛ التمثيل المعياري هو Zg==
8J-YgA في الوضع القياسياختيار مجموعة محارف غير مطابقةاستخدم الوضع الآمن للروابط إذا طلبه البروتوكول
/w==البايت المفكوك غير صالح في UTF-8حدّد هل الحمولة بيانات ثنائية
محرف غير مرئي وغير متوقعBOM أو محرف تحكم في النص المفكوكافحص نقاط الترميز قبل إعادة استخدام النتيجة

RFC 4648: ‏Base64 وBase64url والحشو والتمثيل المعياريRFC 3629: ترميز محارف UTF-8

Base64url والترميز المئوي وروابط data

يحل Base64url والترميز المئوي مشكلتين مختلفتين. يمثّل الترميز المئوي بايتات معينة في الرابط بتسلسلات %؛ ويمثّل Base64url تسلسل بايتات كاملًا بمجموعة محارفه الخاصة. تتحول علامة الجمع إلى مسافة تحديدًا عند تحليل application/x-www-form-urlencoded، وليس في كل رابط عمومًا. استخدم أداة ترميز URL وفكّه لهذه المهمة المنفصلة.

يحتوي رابط data على مخطط data: ونوع وسائط اختياري وفاصلة قبل الحمولة، مع علامة Base64 عند انطباقها. يفشل لصق الغلاف كاملًا في مفكّك النصوص هذا عند فحص مجموعة المحارف. حلّل الحمولة المقصودة باستخدام الأداة المناسبة، وحدّد هل هي نص أم بيانات ثنائية. لا يجعل Base64 برنامجًا نصيًا مضمّنًا أو مستندًا أو ملفًا منزّلًا جديرًا بالثقة.

WHATWG URL: تحليل بيانات النماذج المرمّزة للرابطRFC 2397: مخطط روابط data

أجزاء JWT وHTTP Basic بيانات بروتوكولية

يستخدم JWS المختصر ثلاثة أجزاء تفصل بينها نقاط؛ ويستخدم JWE المختصر خمسة أجزاء. قد يكشف فك ترميز جزء نصي من JWT عن JSON، لكنه لا يتحقق من توقيع، ولا يفك تشفير محتوى مشفّر، ولا يتحقق من انتهاء الصلاحية، ولا يثبت التفويض. وقد يكون جزء التوقيع بايتات عشوائية لا تُفك إلى UTF-8. اتبع بروتوكول الرمز الفعلي واستخدم مكتبة تحقق تُصان بانتظام في تطبيقك.

تستخدم بيانات اعتماد HTTP Basic تمثيل Base64 لتسلسل اسم المستخدم وكلمة المرور، وفق قواعد ترميز محارف خاصة بالبروتوكول. لا يضيف Base64 سرية. ولا تثبت أداة نصوص UTF-8 هذه توافق بيانات الاعتماد مع تفسير كل خادم. لا تنشر بيانات اعتماد حقيقية في الأمثلة، واستخدم وسيلة النقل الآمنة وإجراءات المصادقة المطلوبة.

RFC 7515: التسلسل المختصر لتوقيع JSON على الويبRFC 7516: التسلسل المختصر لتشفير JSON على الويبRFC 7617: مصادقة HTTP Basic

Base64 ليس تشفيرًا أو تجزئة أو ضغطًا

يمكن لأي شخص لديه قيمة Base64 عكس تمثيلها دون مفتاح سري. يحتاج التشفير إلى آلية تشفيرية وإدارة للمفاتيح؛ وتنتج التجزئة بصمة لها أغراض وخصائص مختلفة. تحويل كلمة المرور إلى Base64 ليس طريقة مناسبة لتخزين كلمات المرور. تُنتج أداة التجزئة المنفصلة بصمات، وليست نظامًا لتخزين كلمات المرور أو بديلًا للتشفير.

يوسّع Base64 حجم البايتات بدل ضغطها. ويمكنه حمل بايتات مشفّرة أو مضغوطة أو موقّعة، لكنه لا ينشئ هذه الحماية بنفسه. حدّد احتياجات تطبيقك قبل إضافة طبقة ترميز، وأبقِ الأسرار خارج الأمثلة المشتركة ولقطات الشاشة والنتائج المنزّلة.

RFC 4648: ‏Base64 وBase64url والحشو والتمثيل المعياري

النسخ والتنزيل والتحويل ذهابًا وإيابًا والمسح

يحفظ «تنزيل» النتيجة كنص UTF-8 في toolmellow-result.txt. هذا ليس استعادةً لملف ثنائي ولا تقرير تحويل. يظل «انسخ النتيجة» و«تنزيل» متاحين حتى عند نجاح التحويل بناتج فارغ. لاختبار بسيط، رمّز نصًا معلومًا، واستخدم النتيجة كإدخال إذا كانت ضمن الحد، ثم فكّها بالمجموعة المطابقة وقارن النص الأصلي.

يزيل «مسح» الإدخال والنتيجة والأخطاء ومحتوى البحث والاستبدال وسجل المحرر، مع الإبقاء على اختياري Base64 الآمن للروابط والتفاف الأسطر. يؤدي تحديث مساحة العمل أو إغلاقها إلى إسقاط بيانات العمل الموجودة في الذاكرة؛ أما الملفات المنزّلة فتظل على جهازك. المسح لا يضمن إزالة كل آثار البيانات من ذاكرة المتصفح أو نظام التشغيل.

ما معنى المعالجة المحلية، وما حدودها؟

يجري التحويل في عامل متصفح. لا يرسل التطبيق النص الملصق أو محتوى الملف المختار أو نتائج التحويل إلى خادم للتحويل. يُحفظ إدخال العمل في الصفحة الحالية، ولا يُحفظ كسجل في حساب. راجع صفحة الخصوصية في الموقع للتوضيح الكامل بشأن التخزين وعمليات نقل البيانات المؤقتة.

تحميل الموقع نفسه يتطلب طلبات شبكية. تستقبل البنية المستضيفة بيانات الاتصال والطلبات المعتادة، ويستخدم الموقع العام Google Analytics لزيارات الصفحات مع ملفات تعريف الارتباط ومعلومات المتصفح والجهاز. التحويل المحلي لا يعني إخفاء الهوية ولا وعدًا بانعدام حركة الشبكة أو سجلات البنية التحتية. يمكن أن تغادر الملفات المنزّلة والنتائج التي تنسخها يدويًا مساحة العمل عبر إجراءاتك أنت.

تضمين أداة Base64 مع رابطها الخلفي

افتح قسم التكامل أسفل مساحة عمل الأداة، واختر لغة الصفحة، وانسخ مقتطف HTML المتاح أو نزّله. الصقه في مساحة HTML تسمح بإطارات iframe الخارجية والبرامج النصية. يتضمن المقتطف إطار مساحة عمل ToolMellow، وبرنامج ضبط حجمه، ورابطًا خلفيًا ظاهرًا إلى صفحة الأداة باللغة نفسها في ToolMellow. احتفظ برابط الإسناد هذا.

عاين التضمين واختبر الشاشات الضيقة. يحتفظ التضمين بالنطاق النصي وحدود الإدخال نفسها؛ وليس واجهة API للتحويل عن بُعد أو مُرمّزًا لملفات ثنائية. يعتمد الوصول إلى الحافظة على أذونات المتصفح، ويجب أن تسمح منصتك بالموارد الخارجية. يستخدم الرابط الخلفي المتاح nofollow وnoopener؛ ولا يضمن وجوده تحسين ترتيب البحث.

أسئلة شائعة

كيف أرمّز نصًا باستخدام Base64؟

الصق نص Unicode سليمًا، واختر الوضع القياسي أو الآمن للروابط، واضغط «ترميز». يحوّل ToolMellow النص إلى بايتات UTF-8 ويرمّزها محليًا. انسخ النص الناتج أو نزّله.

كيف أفك ترميز Base64 إلى نص؟

اختر مجموعة المحارف المطابقة واضغط «فك الترميز». تتحقق الأداة من الصيغة ومن البتات غير المستخدمة في التمثيل المعياري، ثم تشترط UTF-8 صالحًا. تقبل الحشو الاختياري الصحيح والإدخال بلا حشو؛ وقد تفشل البيانات الثنائية في فحص النص.

ما الفرق بين Base64 وBase64url؟

يختلف الرمزان الأخيران في مجموعة المحارف: يستخدم القياسي + و/؛ ويستخدم الآمن للروابط - و_. يُخرج ToolMellow الحشو القياسي عند الحاجة، ويحذف حشو الوضع الآمن للروابط. يقبل كلا الوضعين المحددين إدخال فك ترميز بحشو صحيح أو بلا حشو.

لماذا ينتهي Base64 بعلامات يساوي؟

تُكمل علامة يساوي أو علامتان في النهاية المجموعة الأخيرة ذات المحارف الأربعة عندما لا يكون عدد البايتات قابلًا للقسمة على ثلاثة. يعتمد الحشو على الصيغة؛ ويقبل هذا المفكّك أيضًا صيغة صحيحة بلا حشو.

هل يدعم Base64 الرموز التعبيرية والنصوص غير اللاتينية؟

نعم، عبر UTF-8. قد تشغل الرموز التعبيرية أعدادًا مختلفة من وحدات UTF-16 وبايتات UTF-8. يرفض الترميز الوحدات البديلة غير المقترنة، ويرفض فك الترميز UTF-8 غير السليم بدل استبداله.

كم يزيد الحجم عند استخدام Base64؟

الطول مع الحشو هو 4 × ceil(بايتات الإدخال / 3). تقترب الزيادة من الثلث للإدخال الكبير، وتعتمد على التقريب للإدخال القصير. احسب بايتات UTF-8 بدل المحارف المعروضة؛ ويحذف الناتج الآمن للروابط غير المحشو الحشو النهائي.

لماذا يقبل مفكّك آخر قيمة يرفضها ToolMellow؟

تختلف المفكّكات في مجموعات المحارف والمسافات والحشو والبتات غير المستخدمة وترميز محارف النص المقبولة. يستخدم ToolMellow مجموعة المحارف المحددة، ويحذف أربعة محارف مسافات محددة فقط، ويشترط أن تكون البتات غير المستخدمة صفرًا وأن يكون UTF-8 صالحًا. القبول المتساهل في مكان آخر لا يثبت أن الإدخال يتبع التمثيل المعياري.

هل يمكنني فك ترميز ملف PDF أو صورة هنا؟

تُخرج هذه الأداة نص UTF-8، وليس بايتات ملفات عشوائية. استخدم أداة Base64 إلى ملف المنفصلة للاستعادة الثنائية المناسبة. يقرأ إدخال الملف المحلي هنا النص، وقد يزيل BOM أو يستبدل UTF-8 غير الصالح قبل الترميز.

ما محارف المسافات التي يمكن تضمينها عند فك الترميز؟

تُحذف TAB وLF وCR وSPACE فقط. تُرفض تغذية الصفحة والتبويب الرأسي وNBSP وغيرها من محارف المسافات في Unicode. ينطبق حد الإدخال الأصلي البالغ مليون وحدة UTF-16 قبل حذف المسافات.

هل Base64 تشفير أو وسيلة آمنة لتخزين كلمات المرور؟

لا. يمكن عكس Base64 دون مفتاح، ولا يضيف سرية. فهو ليس تشفيرًا أو تجزئة لكلمة مرور أو ضغطًا. كما أن فك ترميز رمز مصادقة لا يتحقق منه ولا يمنحه تفويضًا.

لماذا أستطيع تنزيل نتيجة ولا أستطيع استخدامها كإدخال؟

قد يكون الناتج المرمّز أطول من حد الإدخال البالغ مليون وحدة UTF-16. يظل النسخ والتنزيل متاحين، لكن «استخدم النتيجة كإدخال» يرفض النتيجة الأكبر من الحد. ينتج مليون بايت ASCII عددًا قدره 1,333,336 محرفًا مع الحشو.

هل يمكنني تضمين الأداة في موقعي؟

نعم. استخدم مقتطف HTML باللغة المطلوبة أسفل مساحة العمل، واحتفظ برابط ToolMellow الخلفي الظاهر، وتحقق من سماح منصتك بإطار iframe وبرنامج ضبط الحجم. يستخدم التضمين حدود النص نفسها، وليس واجهة API لخادم تحويل.

المصادر وقراءات إضافية

جرّب بنفسك.