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