ترميز رابط URL يحتوي حروفًا عربية
أداة ترمّز نصًا أو رابطًا يحتوي حروفًا عربية أو مسافات أو رموزًا خاصة إلى صيغة URL آمنة يقبلها المتصفح والخادم دون كسر، وتفكّ ترميز رابط مُرمَّز لقراءته بوضوح. مفيدة لمن يبني رابطًا يدويًا يتضمن نصًا عربيًا كعنوان مقال.
شغّل الأداة مجانًا
تعمل هذه الأداة داخل متصفحك — مجانًا، ولا تُرسل بياناتك إلى أي خادم
لماذا ينكسر رابط يحتوي حروفًا عربية أحيانًا
معيار URL صُمِّم أصلًا لمحارف إنجليزية محدودة؛ أي حرف خارج هذا النطاق — حروف عربية، مسافة، علامة استفهام داخل النص — يجب ترميزه بصيغة خاصة تبدأ بالرمز % قبل تضمينه في رابط، وإلا فقد ينكسر الرابط أو يُفهَم جزء منه كأمر بدل نص، خصوصًا عند تمريره كمعامل داخل رابط أطول.
ترميز عنوان مقال عربي داخل رابط
حين يبني مطور رابط مشاركة يتضمن عنوان مقال عربيًا كمعامل، يحتاج ترميز العنوان أولًا حتى يصل كاملًا وصحيحًا للطرف المستقبل دون تلف في الحروف العربية. تُدخل النص العربي في الأداة فتحصل على النسخة المرمَّزة الجاهزة للصق مباشرة داخل الرابط الكامل.
فك ترميز رابط لقراءته بوضوح
روابط مرمَّزة كثيرًا ما تظهر في سجلات الخادم أو أدوات التتبع كسلسلة رموز % طويلة يصعب قراءتها مباشرة. تفكّ الأداة الترميز وتعيد النص الأصلي المقروء — عربيًا كان أم إنجليزيًا — فيفهم المطور محتوى الرابط دون فك يدوي رمز بعد رمز.
من المتصفح فقط، بلا حدّ للاستخدام
الترميز وفك الترميز يجريان داخل متصفحك، مناسب لاستخدام متكرر أثناء بناء أو تصحيح روابط دون أي قيد على عدد المرات، ودون إرسال أي نص تُدخله إلى خادم خارجي.
حالات الاستخدام
بناء رابط مشاركة لعنوان مقال عربي
يبني محرر محتوى في شركة الخليج الرقمية رابط مشاركة لمقال عنوانه بالكامل بالعربية، ويرمّز العنوان أولًا ليصل صحيحًا عبر منصات التواصل دون تلف في الحروف.
تصحيح رابط ينكسر عند التمرير بين أنظمة
يكتشف مطور أن رابطًا يحتوي مسافة غير مرمَّزة ينكسر عند تمريره بين نظامين، فيستخدم الأداة لترميزه بصيغة صحيحة قبل تضمينه في التكامل.
قراءة رابط مُرمَّز من سجل الخادم
يراجع فريق تقني في مؤسسة النخيل للمقاولات سجل زيارات يحتوي روابط مرمَّزة كسلسلة رموز طويلة، ويفكّ ترميزها لفهم أي صفحات فعليًا زارها المستخدمون.
الأسئلة الشائعة
لماذا يظهر الرابط برموز % كثيرة بعد الترميز؟
كل حرف خارج نطاق المحارف الإنجليزية الأساسية — كحرف عربي — يُستبدَل برمز % متبوعًا بشيفرته الست عشرية؛ هذا هو المعيار المعتمد لتمثيل هذه المحارف داخل رابط.
هل الترميز يغيّر معنى النص؟
لا، الترميز تمثيل مختلف للنص نفسه فقط، ويعود بفك الترميز إلى شكله الأصلي حرفًا بحرف دون أي تغيير.
هل يمكن ترميز رابط كامل لا نص فقط؟
يمكن ترميز أي نص، لكن يُفضَّل ترميز أجزاء الرابط المتغيرة فقط — كمعامل يحمل عنوانًا — لا الرابط كاملًا بما فيه بداية العنوان مثل https.
هل تُحفَظ الروابط التي أرمّزها؟
لا، المعالجة تجري داخل متصفحك فقط ولا يُرسَل أي نص إلى خادم.
هل الاستخدام مجاني بلا حدّ؟
نعم، بلا حدّ لعدد مرات الترميز أو فك الترميز من المتصفح.
هل تعمل الأداة من الجوال؟
نعم، صفحة ويب عادية تعمل من متصفح الجوال بنفس الطريقة على الحاسوب.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/dev/url-encode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/dev/url-encode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/url-encode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/url-encode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/url-encode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"items": [
"valor-1",
"valor-2"
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.url_encode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |