استكشاف الأخطاء · اعتبارًا من 2026-10-13

Claude Code يرفض تعديل ملفات GBK

اعتبارًا من 2026-10-13، تعيد Edit وNotebookEdit في Claude Code حفظ الملف كاملًا بترميز UTF-8، وقبل 2.1.296 كان كل بايت تعجز Edit وNotebookEdit عن فك ترميزه يُستبدل بالمحرف U+FFFD — وهذا ما حوّل النصين الصيني والياباني في ملفات GBK أو Shift-JIS أو Windows-1252 إلى بيانات تالفة. ومنذ 2.1.296 (المؤرخ 9 أكتوبر 2026 في سجل التغييرات الرسمي) تُرفض مثل هذه التعديلات بالرسالة «File is not valid UTF-8»، ولا يُكتب أي شيء. تسلسل آمن: أكّد الترميز بأمر file العام، وخذ نسخة احتياطية من الملف وحوّله باستخدام iconv، ثم دع Claude Code يعدّل مرة أخرى. صفحات وثائق Claude Code الست التي راجعها هذا المقال في 2026-10-13 — settings وtroubleshooting وcommon-workflows وcheckpointing وterminal-config وoverview — لا تسرد أي إعداد يختار ترميز الملف.

آخر تحديث 2026-11-14

مفتاح واحد لـ Claude وGPT وأبرز النماذج الصينية، والفوترة حسب token، ويعمل خلال دقائق.

#الملف ليس بترميز UTF-8 صالح#2.1.296#الأمر: file -i#الأمر: iconv -f -t

أربعة أمور يجب تحديدها أولًا

2.1.296

الإصدار الذي يبدأ الرفض عنده

تقع هذه العبارة تحت 2.1.296 في سجل التغييرات الرسمي، الذي يحمل تاريخ إصداره 9 أكتوبر 2026؛ وتظهر العبارة نفسها حرفيًا في CHANGELOG.md على GitHub، حيث لا تحمل عناوين الإصدارات أي تاريخ.

U+FFFD

ما كتبته الإصدارات الأقدم

يذكر مرجع الأخطاء الرسمي: قبل v2.1.296، كانت Edit وNotebookEdit تطبّقان مثل هذا التعديل وتحفظان كل بايت تعجزان عن فك ترميزه على أنه U+FFFD. ويطلب من أي شخص لا يزال على إصدار أقدم تحديث Claude Code.

0 بايت

ماذا يكلفك الرفض

بعبارة المصدر الرسمي: رفض Claude Code التغيير. لم يُكتب أي شيء، لذا بقي الملف كما كان. التعديل المرفوض يترك كل بايت في الملف دون مساس.

الأمر: file -i

الطريقة العامة للتحقق

يذكر دليل file(1) أن -i يجعل file يخرج سلاسل نوع MIME (مثاله: text/plain; charset=us-ascii)، وأن --mime-encoding يطبع ذلك العنصر فقط. هذه أدوات Unix وليست خيارات في Claude Code.

لماذا تلفت الملفات، ولماذا تُرفض التعديلات الآن

اعتبارًا من 2026-10-13 تجيب الوثائق الرسمية عن الشقين. يقدّم مرجع الأدوات سبب الرفض: ترفض الأدوات لأنها تحفظ الملف كاملًا مرة أخرى بترميز UTF-8، ما سيستبدل كل بايت تعجز عن فك ترميزه بمحرف الاستبدال U+FFFD. ويقول سجل التغييرات إن Edit وNotebookEdit كانتا قبل 2.1.296 تستبدلان كل محرف غير ASCII في الملفات غير الصالحة بترميز UTF-8، ويضيف مرجع الأخطاء أنهما كانتا تحفظان كل بايت تعجزان عن فك ترميزه على أنه U+FFFD، لذا كان تعديل واحد كافيًا لملء ملف GBK بمحارف الاستبدال. الآن ترفض Edit وNotebookEdit التعديل وتتركان الملف دون مساس، وتذكر الرسالة ثلاثة ترميزات قديمة: Windows-1252 وShift-JIS وGBK. لاحظ النطاق: يقول مرجع الأخطاء إن الفحص يغطي بايتات الملف ككل، لذا حتى الملف المفترض أن يكون UTF-8 يتلقى الرسالة نفسها عندما يحتوي على تسلسل بايتات غير صالح واحد.

عبارة سجل التغييرات حرفيًا

ينص إدخال سجل تغييرات Claude Code للإصدار 2.1.296 على: «أُصلح استبدال Edit وNotebookEdit لكل محرف غير ASCII في الملفات غير الصالحة بترميز UTF-8 (Windows-1252 وShift-JIS وGBK)؛ أصبحت مثل هذه التعديلات تُرفض الآن.» وهو مطابق في صفحة سجل التغييرات على code.claude.com وفي CHANGELOG.md على GitHub، وتقول الصفحة إنه مولّد من ذلك الملف؛ ولا تحمل تاريخ الإصدار 9 أكتوبر 2026 إلا صفحة الوثائق. وهناك إدخالان أسبقان يمثلان أيضًا إصلاحات ترميز: 2.1.214 (18 يوليو 2026) أوقف > و>> في PowerShell 5.1 عن كتابة ملفات UTF-16LE تعجز أدوات أخرى عن قراءتها بترميز UTF-8، و2.1.267 (9 سبتمبر 2026) جعل نشر artifact يذكر السطر والعمود عندما يكون الملف غير صالح بترميز UTF-8 أو يحتوي على U+FFFD.

ثلاثة إدخالات مؤرخة من الصفحات الرسمية

2026-07-18

Claude Code 2.1.214: إصلاحات لـ > و>> في Windows PowerShell 5.1 عند كتابة ملفات UTF-16LE لا تستطيع أدوات أخرى قراءتها بترميز UTF-8، ولتعطل سكربتات Python بخطأ UnicodeDecodeError عند قراءة إدخال قياسي غير UTF-8. ويقول مرجع الأدوات إن سلوكيات الترميز هذه في Windows تتطلب v2.1.214 أو أحدث.

2026-09-09

Claude Code 2.1.267: أصبح نشر artifact من ملف غير صالح بترميز UTF-8 أو يحتوي على محرف الاستبدال U+FFFD يذكر السطر والعمود اللازم إصلاحهما. ويضيف مرجع الأخطاء أنه قبل v2.1.267 كان Claude Code يرفع مثل هذا الملف دون فحصه، وكان الخادم يرفض النشر.

2026-10-09

Claude Code 2.1.296: تتوقف Edit وNotebookEdit عن استبدال المحارف غير ASCII في الملفات غير الصالحة بترميز UTF-8 (Windows-1252 وShift-JIS وGBK) وترفض تلك التعديلات بدلًا من ذلك.

مؤكد مقابل غير موثق

مؤكد (حرفيًا في الصفحات الرسمية)

كل هذا مصاغ بهذه الطريقة نفسها في الصفحات الرسمية التي راجعتها هذه المقالة في 2026-10-13: جملة سجل تغييرات الإصدار 2.1.296 وتاريخها 9 أكتوبر 2026؛ ومرجع الأدوات الذي ينص على أن Claude لا يستطيع استخدام NotebookEdit على ملف ليس UTF-8 صالحًا. وينطبق الأمر نفسه على Edit، إلا إذا كان الملف يبدأ بعلامة ترتيب بايت UTF-16 little-endian. — استثناء علامة ترتيب البايت مكتوب لـ Edit فقط؛ وأن الرفض يترك الملف دون تغيير، وأن السبب هو حفظ الملف كاملًا مرة أخرى بترميز UTF-8؛ ونص رسالة مرجع الأخطاء وخياريه (أن تدع Claude يغيّر الملف باستخدام أمر shell يقرأه ويكتبه بترميزه الخاص، أو تحويله إلى UTF-8 والتحرير مرة أخرى)؛ وأنه قبل الإصدار v2.1.296 كانت البايتات غير القابلة لفك الترميز تُحفظ على هيئة U+FFFD؛ وأن Write لا يزال بإمكانه استبدال مثل هذا الملف، لكنه يحفظه بعد ذلك بترميز UTF-8، لذا يُفقد الترميز الأصلي. أما من جهة الأدوات العامة: file(1) من أجل -i و--mime-encoding، وiconv(1) من أجل -f و--from-code، و-t و--to-code، و-l، و-c، و//TRANSLIT و//IGNORE، وقائمة ترميزات GNU libiconv التي تشمل SHIFT_JIS وGBK وعائلة CP1252.

غير مُتحقَّق منه وغير موثّق

ثلاثة أمور غير موصوفة في صفحات وثائق Claude Code الثماني التي راجعتها هذه المقالة في 2026-10-13 — settings وtroubleshooting وcommon-workflows وcheckpointing وterminal-config وoverview وerrors وtools reference — لذا لا تخطّط بناءً عليها. أولًا، لا تتيح لك أي منها اختيار ترميز الملف: فقط صفحتا errors وtools reference تناقشان كيفية فك ترميز الملفات، والصفحات الست الأخرى لا تدرج أي إعداد للترميز. ثانيًا، لا يوجد إعداد أو خيار في تلك الصفحات يجعل Edit يكتب الملف مرة أخرى بترميز GBK. ثالثًا، لا تقدّم أي أداة تستعيد نصًا تحوّل بالفعل إلى U+FFFD: في قسم artifact-publish يقول مرجع الأخطاء فقط إنه يجب حفظ الملف مرة أخرى بترميز UTF-8 واستبدال كل U+FFFD بالحرف الذي أفقده تحرير أو لصق أو تحويل سابق. ويذكر file(1) أيضًا أن بعض منطق الترميز لديه مضمّن بشكل ثابت في encoding.c، لذا فإن تخمينه لمجموعة المحارف مجرد تلميح وليس دليلًا.

مساران رسميان، ونوعان من النص المشوّه

الإبقاء على الترميز مقابل التحويل إلى UTF-8

يقدّم مرجع الأخطاء مسارين: للإبقاء على الملف بترميزه الحالي، دع Claude يجري التغيير باستخدام أمر shell يقرأ الملف ويكتبه بذلك الترميز؛ ولمواصلة التحرير باستخدام أداة Edit، حوّله إلى UTF-8، أو أصلح البايتات غير الصالحة في ملف يُفترض أنه UTF-8، ثم اطلب من Claude إجراء التحرير مرة أخرى. المسار الثاني فقط يعيد Edit وNotebookEdit. أما الأول، فيسمّي مرجع الأخطاء الطريقة دون أي أمر، والطريقة العامة تكون على صيغة مثل iconv -f GBK -t UTF-8.

ملف تالف مقابل عرض مشوّه

تعزو صفحة استكشاف الأخطاء وإصلاحها المربعات واللطخات والمحارف الخاطئة في الطرفية المدمجة في VS Code أو Cursor أو Devin Desktop إلى مُصيّر GPU الخاص بالطرفية، وتطلب منك تشغيل /terminal-setup لتعيين terminal.integrated.gpuAcceleration إلى off، أو تغييره في إعدادات المحرر وإعادة تحميل النافذة؛ البايتات هناك غير متأثرة. وتُظهر مشكلة الترميز الحقيقية رسالة File is not valid UTF-8، ومنذ 2.1.296 لا يُكتب شيء. إذا كان النص يحتوي بالفعل على محارف U+FFFD، فهذا هو المحرف الذي كتبته الإصدارات قبل 2.1.296.

عالج الأمر بهذا الترتيب

① تحقّق من الترميز باستخدام أوامر عامة. يوثّق file(1) الخيار -i (سلاسل نوع MIME؛ مثالها هو text/plain; charset=us-ascii) والخيار --mime-encoding لهذا العنصر وحده، ويسرد iconv -l أسماء الترميزات التي يعرفها نظامك؛ فهذه أدوات Unix وليست خيارات Claude Code. ② خذ نسخة احتياطية، ثم حوّل. انسخ الأصل أولًا، ثم شغّل iconv مع تسمية الطرفين: الصيغة الموجزة في الدليل هي iconv [ options ] [ -f from-encoding ] [ -t to-encoding ] ومثاله iconv -f ISO-8859-15 -t UTF-8 < input.txt > output.txt. يذكر الدليل أيضًا أن المحارف غير القابلة للتحويل توقف iconv ما لم تمرر -c، وأن //TRANSLIT يقرّبها ويطبع علامة استفهام عندما لا يستطيع ذلك، وأن //IGNORE يتجاهلها ويبلّغ عن خطأ بعد التحويل؛ كل واحد من هذه الأساليب يؤدي إلى فقدان محارف، لذا افحص النتيجة واحتفظ بالأصل. ③ ثم دع Claude Code يحرّر. حدّث Claude Code إلى 2.1.296 أو إصدار أحدث (تقول الوثائق بالنسبة إلى الإصدارات الأقدم فقط: حدّث Claude Code). إذا كان يجب أن يبقى الملف بترميزه الخاص، فاتبع الرسالة الرسمية واجعل Claude يستخدم أمر shell يقرأ الملف ويكتبه بذلك الترميز؛ وبمجرد أن يصبح الملف UTF-8، يعمل Edit مرة أخرى، بينما الاستبدال الكامل باستخدام Write سيحفظه بترميز UTF-8 ويفقد الترميز الأصلي.

على QCode

يحدث فحص الترميز داخل Claude Code على جهازك، لذا لا يعتمد على نقطة النهاية التي تستخدمها. يربط متغيران Claude Code بـ QCode: ANTHROPIC_BASE_URL مضبوطًا على https://api.qcode.cc/api وANTHROPIC_AUTH_TOKEN مضبوطًا على المفتاح cr_ من لوحة التحكم؛ ويضيف دليل إعداد ANTHROPIC_BASE_URL على qcode.cc أن القيمة لا تتضمن شرطة مائلة في النهاية وأن نماذج Claude تُقدَّم فقط عبر نقطة نهاية Anthropic. اعتبارًا من 2026-10-13، تتوفر claude-sonnet-5-5 وclaude-haiku-4-5-20251001 وclaude-opus-5-5 على QCode. تُحتسب التكلفة لكل token؛ وتُدرج أسعار كل نموذج على /models.

الأسئلة الشائعة

لماذا حوّل Claude Code ملف GBK الخاص بي إلى رموز تالفة، ولماذا يرفض التعديل الآن؟

لأن Edit وNotebookEdit يحفظان الملف كاملًا مرة أخرى بترميز UTF-8. يذكر مرجع الأدوات سبب الرفض: ترفض الأدوات لأنها تحفظ الملف كاملًا مرة أخرى بترميز UTF-8، ما يستبدل كل بايت تعجز عن فك ترميزه بحرف الاستبدال U+FFFD. قبل 2.1.296 كان هذا الاستبدال هو ما حدث بالضبط، لذا ملأ تعديل واحد ملف GBK أو Shift-JIS بحروف الاستبدال. منذ 2.1.296 تُرفض هذه التعديلات: يقول سجل التغييرات إنه تم إصلاح قيام Edit وNotebookEdit باستبدال كل حرف غير ASCII في الملفات غير الصالحة بترميز UTF-8 (Windows-1252 وShift-JIS وGBK)؛ وتُرفض هذه التعديلات الآن، ويضيف مرجع الأخطاء: «لم تتم كتابة أي شيء»، لذا يبقى الملف كما كان. تعتمد كيفية ظهور الأحرف على الشاشة على محررك؛ أما الحرف الذي تسميه الوثائق فهو U+FFFD.

كيف أتأكد من الترميز الذي يستخدمه الملف فعليًا؟

استخدم الأمر العام file. يقول دليل file(1) إن -i يجعل الأمر file يُخرج سلاسل نوع MIME بدلًا من السلاسل التقليدية الأكثر قابلية للقراءة البشرية، ومثاله text/plain; charset=us-ascii، وإن --mime-type و--mime-encoding يطبعان العنصر المحدد فقط. تعامل مع الإجابة كتلميح: يصنّف file النص حسب نطاقات البايتات وتسلسلاتها، ويلاحظ الدليل أن بعض منطق الترميز مضمّن بشكل ثابت في encoding.c، لذا تأكد بالتحويل باستخدام iconv ثم قراءة النص مجددًا. لا تذكر صفحات وثائق Claude Code الست التي راجعها هذا المقال في 2026-10-13 (settings وtroubleshooting وcommon-workflows وcheckpointing وterminal-config وoverview) أي أمر يطبع ترميز الملف أو يضبطه.

كيف أحوّل إلى UTF-8، وهل أحتاج إلى نسخة احتياطية أولًا؟

أنشئ نسخة احتياطية أولًا، ثم حوّل، ثم قارن. صيغة الاستدعاء في iconv(1) هي iconv [ options ] [ -f from-encoding ] [ -t to-encoding ]: يسمّي -f ترميز أحرف الإدخال ويسمّي -t ترميز الإخراج، ومثال الدليل نفسه هو iconv -f ISO-8859-15 -t UTF-8 < input.txt > output.txt، لذا يصبح ملف GBK هو -f GBK. تذكّر ما يقوله الدليل عن حالات الفشل: تُنهي الأحرف غير القابلة للتحويل التشغيل ما لم تمرر -c، ويقرّب //TRANSLIT منها ويطبع علامة استفهام عندما لا يستطيع ذلك، ويتجاهلها //IGNORE مع خطأ بعد التحويل. كلها تؤدي إلى فقدان أحرف، لذا احتفظ بالنسخة وافحص المقاطع الصينية أو اليابانية. هذه استخدامات قياسية لأدوات Unix، وليست معاملات Claude Code.

هل ينطبق الأمر نفسه على Shift-JIS الياباني وWindows-1252 الغربي؟

القاعدة نفسها، والمجموعة نفسها. تذكر الجملة الواردة في 2.1.296 Windows-1252 وShift-JIS وGBK معًا؛ ويذكر مرجع الأخطاء الثلاثة نفسها، ويعطي مرجع الأدوات Windows-1252 وShift-JIS كمثالين. يتمثل الفحص في ما إذا كانت بايتات الملف تُفكّ بترميز UTF-8 ككل، لذا يُظهر الملف الذي يُفترض أن يكون UTF-8 الرسالة نفسها عندما يحتوي على تسلسل بايتات غير صالح واحد على الأقل. للتحويل، استخدم الأسماء من قائمة ترميزات GNU libiconv، التي تشمل SHIFT_JIS وCP932 وGBK وCP936 وGB18030 وBIG5 وعائلة CP1250 إلى CP1257، مع UTF-8 كهدف.

كيف أربط Claude Code عبر QCode، وأين أجد الأسعار؟

متغيران. يعطي الدرس التعليمي لـ Claude Code من QCode الأمر export ANTHROPIC_BASE_URL = https://api.qcode.cc/api وexport ANTHROPIC_AUTH_TOKEN = cr_ متبوعًا بمفتاحك، ويعطي جدول نقاط النهاية في وثائق QCode لـ Claude Code القيمة نفسها https://api.qcode.cc/api؛ ويضيف دليل إعداد ANTHROPIC_BASE_URL على qcode.cc أن Base URL لا تتضمن شرطة مائلة في النهاية وأن نماذج Claude تذهب فقط إلى نقطة نهاية Anthropic. اعتبارًا من 2026-10-13 تتوفر claude-sonnet-5-5 وclaude-haiku-4-5-20251001 وclaude-opus-5-5 على QCode. تُحتسب التكلفة لكل token؛ وتُدرج أسعار كل نموذج على /models.

كيف أدفع وأبدأ الاستخدام من الصين؟

تعمل كل من Alipay وWeChat Pay. وتسرد صفحة طرق الدفع في QCode على صفحة شحن الرصيد: Alipay وWeChat Pay وبطاقة الائتمان / الخصم (Visa / Mastercard) وApple Pay / Google Pay والعملات الرقمية (عملات وشبكات كثيرة، مع مطابقة يدوية للتحويل على الشبكة)؛ والفوترة مسبقة الدفع — تشحن الرصيد، ثم تشتري خطة تُخصم من الرصيد. وتذكر الصفحة نفسها الحدود المطبوعة عليها: يبدأ شحن الرصيد باليوان الصيني من ¥30، ويتراوح شحن الرصيد بالدولار من $5 إلى $2,000. بعد إنشاء حساب، أنشئ مفتاحًا من نوع cr_ في لوحة التحكم ووجّه Claude Code إليه.

المصادر

سجل تغييرات Claude Code (صفحة سجل التغييرات على code.claude.com وملف CHANGELOG.md على GitHub) وصفحات الوثائق الرسمية Error reference وTools reference وTroubleshooting وSettings وTerminal configuration وOverview وCommon workflows وCheckpointing، وجميعها روجعت بتاريخ 2026-10-13؛ وللأدوات العامة، صفحتا الدليل file(1) وiconv(1) على man7.org ووثائق GNU libiconv، وكلها أيضًا بتاريخ 2026-10-13؛ ولـ QCode، صفحات docs.qcode.cc عن نقاط النهاية ومسارات API، وشرح Claude Code وطرق الدفع، إضافة إلى الأدلة على الموقع عن استخدام Claude Code في الصين والتثبيت بنقرة واحدة وإعداد ANTHROPIC_BASE_URL، وجميعها روجعت بتاريخ 2026-10-13.

مفتاح cr_ واحد، وClaude Code متصل

اضبط ANTHROPIC_BASE_URL على https://api.qcode.cc/api واضبط ANTHROPIC_AUTH_TOKEN كما تصف وثائق QCode، ثم شغّل claude-sonnet-5-5 ونماذج Claude الأخرى؛ تُحسب الفاتورة لكل token، وأسعار كل نموذج مدرجة على /models.

قراءات ذات صلة

دليل الدفع بالعملات المشفرة

تسع عملات، و56 شبكة، وبدون رسوم منصة لرصيد API للبرمجة بالذكاء الاصطناعي.

رُوجعت الاقتباسات والخطوات في هذه الصفحة بتاريخ 2026-10-13 مقابل سجل تغييرات Claude Code ووثائقه، وصفحتي الدليل file(1) وiconv(1)، ووثائق GNU libiconv ووثائق QCode؛ تتغير الصفحات الرسمية دون إشعار، لذا اعتمد على الصفحات الرسمية. وfile وiconv أداتان عامتان في Unix: تعرض هذه الصفحة استخدامهما الموثق، لا خيارات Claude Code. وتوافر النماذج هو ما تعرضه /models.

لست متأكدًا من أين تبدأ؟

جرّبه لمدة أسبوع

الباقة الصغيرة: $4 مقابل $30 من الحصة، مدة الصلاحية: 7 يوم

استخدمها كل يوم

Starter: $9.00 شهريًا مع $5 من الحصة كل يوم — $0.060 فقط لكل $1 من الحصة، مقارنةً بنحو $0.113 لـ الباقة المتوسطة