रेडिस सर्वर स्वयं सभी डेटा को बाइनरी ऑब्जेक्ट के रूप में संग्रहीत करता है, इसलिए यह एन्कोडिंग पर निर्भर नहीं है। सर्वर केवल वही संग्रहीत करेगा जो क्लाइंट द्वारा भेजा जाता है (UTF-8 वर्णों सहित)।
यहां कुछ प्रयोग दिए गए हैं:
$ echo téléphone | hexdump -C
00000000 74 c3 a9 6c c3 a9 70 68 6f 6e 65 0a |t..l..phone.|
c3a9 'é' चार का प्रतिनिधित्व है।
$ redis-cli
> set t téléphone
OK
> get t
"t\xc3\xa9l\xc3\xa9phone"
दरअसल रेडिस सर्वर में डेटा सही तरीके से स्टोर होता है। हालांकि, जब इसे टर्मिनल में लॉन्च किया जाता है, तो रेडिस क्लाइंट आउटपुट की व्याख्या करता है और गैर प्रिंट करने योग्य वर्णों को बदलने के लिए sdscatrepr फ़ंक्शन लागू करता है (जिसकी परिभाषा लोकेल निर्भर है, और वैसे भी मल्टीबाइट वर्णों के लिए तोड़ा जा सकता है)।
रेडिस-क्ली को 'कच्चे' विकल्प के साथ लॉन्च करना एक आसान समाधान है:
$ redis-cli --raw
> get t
téléphone
आपका स्वयं का एप्लिकेशन शायद रेडिस-क्ली के बजाय क्लाइंट लाइब्रेरी में से एक का उपयोग करेगा, इसलिए इसे व्यवहार में कोई समस्या नहीं होनी चाहिए।