MaxReve نشر 1 ديسمبر 2015 أرسل تقرير نشر 1 ديسمبر 2015 لدي سلاسل نصية بها أحرف غير آسكي وأريد التخلص منها لأن تطبيقي لا يدعم هذه الحروف، فهل هنالك طريقة سهلة وبسيطة في لغة روبي لحذف الأحرف غير آسكي من سلسلة النصية؟ اقتباس
0 هشام رزق الله نشر 1 ديسمبر 2015 أرسل تقرير نشر 1 ديسمبر 2015 إن الطريقة الرسمية للتحويل بين تشفيرات السلاسل النصية المختلفة في لغة روبي 1.9 هي عن طريق استخدام تابع encode، ولحذف الحروف غير آسكي من السلسلة النصية يمكنك استعمال هذه الخيارات للتابع حتى يقوم بالمهمة كما في المثال التالي: # See String#encode encoding_options = { :invalid => :replace, # Replace invalid byte sequences :undef => :replace, # Replace anything not defined in ASCII :replace => '', # Use a blank for those replacements :universal_newline => true # Always break lines with \n } non_ascii_string.encode(Encoding.find('ASCII'), encoding_options) أو يمكنك على سبيل المثال إنشاء تابع لحذف حروف غير آسكي عن طريق استبدالها بلا شيء بواسطة تابع gsub كما يظهر في المثال التالي:class String def remove_non_ascii(replacement="") self.gsub(/[\x80-\xff]/,replacement) end end وهنالك طريقة أخرى لفعل ذلك وهي عن طريق استخدام Iconv كما في المثال التالي:class String def remove_non_ascii require 'iconv' Iconv.conv('ASCII//IGNORE', 'UTF8', self) end end اقتباس
السؤال
MaxReve
لدي سلاسل نصية بها أحرف غير آسكي وأريد التخلص منها لأن تطبيقي لا يدعم هذه الحروف، فهل هنالك طريقة سهلة وبسيطة في لغة روبي لحذف الأحرف غير آسكي من سلسلة النصية؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.