ahmed1990 نشر 17 نوفمبر 2015 أرسل تقرير نشر 17 نوفمبر 2015 أحاول أن أكتب في ملف من نوع utf-8 بعض السلاسل النصية من نفس النوع، لكن عندما أقوم بذلك عن طريق هذه الأسطر تظهر لي رسالة الخطأ:file = codecs.open("temp", "w", "utf-8") file.write(codecs.BOM_UTF8) file.close() أما لو جربت هذا المثال:file = open("temp", "w") file.write(codecs.BOM_UTF8) file.close() فسيعمل دون مشاكل، فما هو السبب؟ اقتباس
0 هشام رزق الله نشر 17 نوفمبر 2015 أرسل تقرير نشر 17 نوفمبر 2015 المشكلة أن codecs.BOM_UTF8 هي سلسلة نصية من نوع بايت وليست سلسلة نصية من نوع Unicode، فعلى الأغلب معالج الملف سيحاول معرفة ما الذي تريد فعله، فكأنه يقول لك "أنت تعني أنك تريد كتابة سلسلة نصية من نوع unicode مرمّزة عن طريق ترميز UTF-8 لكنك قمت بإعطائي سلسلة نصية من نوع بايت".يمكنك حل هذه المشكلة عن طريق تمرير utf-8-sig إلى codecs.open كما في المثال التالي:with codecs.open("test_output", "w", "utf-8-sig") as temp: temp.write("hi mom\n") temp.write(u"This has ♭") المصدر اقتباس
السؤال
ahmed1990
أحاول أن أكتب في ملف من نوع utf-8 بعض السلاسل النصية من نفس النوع، لكن عندما أقوم بذلك عن طريق هذه الأسطر تظهر لي رسالة الخطأ:
أما لو جربت هذا المثال:
فسيعمل دون مشاكل، فما هو السبب؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.