आप केवल ASCII वर्ण के साथ काम कर रहे हैं तो आप उपयोग कर सकते हैं
>> "Hello \xBF World!".encode('utf-8', 'binary', :invalid => :replace, :undef => :replace)
=> "Hello � World!"
लेकिन अगर हम वैध UTF8 वर्ण कि ascii
>> "¡Hace \xBF mucho frío!".encode('utf-8', 'binary', :invalid => :replace, :undef => :replace)
=> "��Hace � mucho fr��o!"
उह ओह में अमान्य हैं के साथ एक ही दृष्टिकोण का उपयोग क्या होता है! हम उच्चारण के साथ रहने के लिए चाहते हैं। यहाँ एक विकल्प है कि वैध UTF8 वर्ण
>> "¡Hace \xBF mucho frío!".chars.select{|i| i.valid_encoding?}.join
=> "¡Hace mucho frío!"
इसके अलावा रूबी 2.1 में वहाँ एक नई विधि scrub
कहा जाता है कि इस समस्या का हल
>> "¡Hace \xBF mucho frío!".scrub
=> "¡Hace � mucho frío!"
>> "¡Hace \xBF mucho frío!".scrub('')
=> "¡Hace mucho frío!"
स्रोत
2014-11-30 03:19:20
धन्यवाद है रहता है! से-एन्कोडिंग के रूप में 'ascii' का उपयोग करना भी काम करता है। – drewinglis
@ ड्रूविंग्लिस: मुझे "बाइनरी" (जो "एसीआईआई -8 बिट" के लिए उपनाम है) की व्याख्या पसंद है, "ascii" बिल्कुल वही नहीं है। –