سؤال

لقد أشعل النار المهمة (في lib/المهام الدليل) أن أركض مع كرون على استضافة مشتركة.المشكلة هي أنني أريد أن تقارن UTF-8 سلسلة باستخدام حالة المنصورة ولكن بلدي شفرة المصدر هو UTF-8 ترميز.إن حفظ التعليمات البرمجية المصدر كما UTF-8 هناك خطأ عندما أحاول تشغيله :(

ماذا علي أن أفعل ؟

قد تكون قراءة هذه السلاسل من الخارجية UTF-8 txt الملف ؟

P. S.أنا باستخدام روبي 1.8

P. S.أعني مقارنة هذه الطريقة:

result = case utf8string
   when 'АБВ': 1
   when 'ГДИ': 2
   when 'ЙКЛ': 3
   when 'МНО': 4
   else 5
end
هل كانت مفيدة؟

المحلول

وانا اقول كنت بحاجة إلى تغيير محرر النص الخاص بك كما هو BOM <م> لا اللازمة لUTF-8. UTF-8 ليس بايت النظام يعتمد. انظر ربط النص للحصول على مزيد من التفاصيل.

نصائح أخرى

لقد وجدت أن المشكلة ليست في حالة المنصورة

المشكلة انني عندما احفظ بلدي شفرة المصدر في UTF-8 تنسيق النص محرر إضافة 3 بايت (BOM) في بداية تشير إلى أن ترميز UTF-8.

Q:ما هو BOM ؟

A: ترتيب بايت علامة (BOM) يتكون من رمز الحرف U+FEFF في بداية دفق البيانات ، حيث يمكن أن تستخدم توقيع تحديد ترتيب بايت و ترميز شكل أساسا من علامات نص عادي الملفات.تحت أعلى مستوى البروتوكولات استخدام بوم قد يكون إلزامية (أو محظورة) في يونيكود دفق البيانات المبينة في هذا البروتوكول.

UTF-8 و UTF-16, UTF-32 & BOM

الخطأ أن أحصل كان:

1: Invalid char `\357' in expression
1: Invalid char `\273' in expression
1: Invalid char `\277' in expression

وحاول استخدام طريقة mb_chars من ActiveSupport إطار القضبان ':

result = case utf8string.mb_chars
   when 'АБВ': 1
   when 'ГДИ': 2
   when 'ЙКЛ': 3
   when 'МНО': 4
   else 5
end
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top