मान लें कि आपके पास "€foo\xA0"
जैसे स्ट्रिंग है, जो यूटीएफ -8 एन्कोड किया गया है, क्या इस स्ट्रिंग से अमान्य बाइट अनुक्रमों को निकालने का कोई तरीका है? (इसलिए आपको "€foo"
)स्ट्रिंग से अमान्य बाइट अनुक्रमों को हटाने के लिए रूबी 1.9 में कोई तरीका है?
रूबी -88 में आप Iconv.iconv('UTF-8//IGNORE', 'UTF-8', "€foo\xA0")
का उपयोग कर सकते हैं लेकिन अब इसे बहिष्कृत किया गया है। "€foo\xA0".encode('UTF-8')
कुछ भी नहीं करता है, क्योंकि यह पहले से ही यूटीएफ -8 है। मैंने कोशिश की:
"€foo\xA0".force_encoding('BINARY').encode('UTF-8', :undef => :replace, :replace => '')
जो
"foo"
पैदावार लेकिन वह भी €
यह इस स्ट्रिंग '' में \ xF1' को दूर नहीं करता "eEspa \ xF1a; अमेरिकन प्लान" ' – Dorian
@Dorian, 1.9.3 आईआरबी कंसोल पर,' "eEspa \ xF1a; अमेरिकन प्लान" .chars.select {| मैं | i.valid_encoding?}। 'रिटर्न' 'eEspaa; एफबी' 'में शामिल हों ...' क्या आपको वह व्यवहार नहीं मिला है या क्या मैंने गलत समझा है? – acobster