2013-04-16 9 views
23

मैं रूबी पता नहीं है, लेकिन एक स्क्रिप्ट चलाने के लिए चाहते हैं, जहां:रूबी 2.0 iconv प्रतिस्थापन

डी: /Heather/Ruby/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb: 45: में `की आवश्यकता होती है ': इस तरह के फ़ाइल लोड नहीं कर सकते हैं - iconv (LoadError)

यह किसी भी तरह से काम करता है अगर मैं iconv कोड टिप्पणी लेकिन यह काफी बेहतर हो सकता है अगर मैं इस हिस्से पुनःकूटित कर सकते हैं:

return Iconv.iconv('UTF-8//IGNORE', 'UTF-8', (s + ' ')).first[0..-2] 

बिना iconv । शायद मैं किसी भी तरह String#encode का उपयोग कर सकता हूं?

+0

आप क्या करने की कोशिश कर रहे हैं? अगर हमें पता चल जाए, तो हम आपको सुझाव दे सकते हैं। –

+0

इस स्क्रिप्ट को चलाएं: https://github.com/purcell/darcs-to-git/blob/master/darcs-to-git (लाइन 157 - iconv उपयोग) – Cynede

उत्तर

36

Iconv को 1.9.3 में हटा दिया गया था (हटाया गया)। आप अभी भी इसे इंस्टॉल कर सकते हैं।

संदर्भ सामग्री यदि आप अनिश्चित: https://rvm.io/packages/iconv/

हालांकि सुझाव है कि आप नहीं बल्कि प्रयोग करते है:

string.encode("UTF-8", :invalid => :replace, :undef => :replace, :replace => "?") 

API

+12

"बहिष्कृत (हटाया गया)" - lol, ये दो शब्द पूरी तरह से अलग अर्थ है। – Trejkaz

8

आप रूबी 2.1 पर नहीं कर रहे हैं, तो String#scrub उपयोग नहीं कर सकते तो निम्न स्ट्रिंग है जो सही ढंग से UTF-8 एन्कोडेड नहीं हैं के सभी भागों पर ध्यान नहीं देगा तो।

string.encode('UTF-16', :invalid => :replace, :replace => '').encode('UTF-8') 

एनकोड विधि लगभग ठीक आप क्या चाहते हैं, लेकिन चेतावनी है कि एनकोड कुछ नहीं करता है अगर यह सोचता है कि स्ट्रिंग पहले से ही UTF-8 है के साथ करता है। इसलिए आपको एन्कोडिंग को बदलने की आवश्यकता है, जो एक एन्कोडिंग के माध्यम से जा रहा है जो अभी भी यूनिकोड वर्णों के पूर्ण सेट को एन्कोड कर सकता है जो यूटीएफ -8 एन्कोड कर सकता है। (यदि आप नहीं करते हैं तो आप उस एन्कोडिंग में मौजूद किसी भी वर्ण को भ्रष्ट नहीं करेंगे - 7 बिट ASCII वास्तव में खराब विकल्प होगा!)

0

मुझे एक पंक्ति स्ट्रिंग का उपयोग करके विभिन्न दृष्टिकोणों के साथ भाग्य नहीं मिला है। अपने आप से

लेकिन मैंने एक बैकफिल लिखा है जो एमआरआई प्री 2.1 में स्ट्रिंग # स्क्रब लागू करता है, या अन्य रूबी जिनके पास यह नहीं है।

https://github.com/jrochkind/scrub_rb

संबंधित मुद्दे