मैं इन 2 UTF-8 तार हैरूबी, समस्याओं UTF-8 वर्णों के साथ तार की तुलना
irb(main):039:0> puts "#{a} - #{b}"
Nữ - Nữ
संस्करण वह है जिसे मैंने डीबी में संग्रहीत किया है। बी संस्करण एक पोस्ट अनुरोध में ब्राउज़र से आ रहा है, मुझे नहीं पता कि ब्राउज़र यूटीएफ 8 अक्षरों का एक अलग संयोजन क्यों भेज रहा है, और यह हमेशा नहीं हो रहा है, मैं इस मुद्दे को पुन: पेश नहीं कर सकता मेरे देव पर्यावरण, यह उत्पादन में और कुल अनुरोधों के प्रतिशत में होता है।
मामला है कि मैं उन दोनों की तुलना करने की कोशिश, लेकिन वे false
वापसी:
irb(main):022:0> c.force_encoding("UTF-8") == a.force_encoding("UTF-8")
=> false
एक और दिलचस्प तथ्य यह है:
irb(main):035:0> a == b
=> false
मैं एन्कोडिंग लिए मजबूर की तरह अलग अलग बातें की कोशिश की है :
irb(main):005:0> a.chars
=> ["N", "ư", "̃"]
irb(main):006:0> b.chars
=> ["N", "ữ"]
मैं इस तरह के तारों की तुलना कैसे कर सकता हूं?
क्या आपको एक ही ब्राउज़र से ओ और बी मिलता है और ओएस? मुझे लगता है कि विशिष्ट ब्राउज़र/ओएस चरित्र प्रतिपादन मुद्दे की तरह लगता है। शायद आप स्पॉट प्रतिस्थापन तालिका को आजमा सकते हैं और फिर रिवर्स प्रतिस्थापन कर सकते हैं। – Cyrill