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