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