मैं अनुरोधित छवि को अपने आरईएसटी एपीआई से बेस 64 स्ट्रिंग में पार्स करना चाहता हूं।बेस 64 में प्रतिक्रिया से बाइनरी छवि स्ट्रिंग कैसे करें?
सबसे पहले ... मैंने सोचा था कि, यह आसान हो सकता है, सिर्फ इस उद्देश्य के लिए window.btoa()
समारोह का उपयोग करने के।
जब मैं अपने आवेदन के ऐसे हिस्से में यह करने के लिए प्रयास करें:
.done(function(response, position) {
var texture = new Image();
texture.src = "data:image/png;base64," + window.btoa(response);
मैं अगले त्रुटि मिल गया है: Uncaught InvalidCharacterError: 'विंडो' पर 'btoa' निष्पादित करने में विफल: स्ट्रिंग के लिए एन्कोडेड में लैटिन 1 रेंज के बाहर वर्ण शामिल हैं।
के रूप में मैं यहाँ पढ़ें: newlines in the response
की वजह से javascript atob returning 'String contains an invalid character'
समस्या इसलिए होती है और यही कारण है window.btoa()
में विफल रहा है। पाठ्यक्रम के किसी भी बाइनरी छवि प्रारूप में नई लाइनें होंगी ... लेकिन सुझाव के ऊपर दिए गए लिंक से उन पात्रों को हटाना/प्रतिस्थापित करना था - मेरे लिए एक बुरा सुझाव है, क्योंकि बाइनरी छवि से कुछ पात्रों को हटाने/बदलने के लिए दूषित हो जाओ
, संभव विकल्पों एपीआई डिजाइन से संबंधित हैं: - अगर मैं मरम्मत नहीं होगा कुछ समारोह, जो छवि
को यूआरएल लौट जोड़ने के लिए - कुछ समारोह है, जो बेस 64 प्रतिनिधित्व लौट जोड़ने के लिए यह, मैं सर्वर से बेस 64 प्रतिनिधित्व वापस कर दूंगा, लेकिन मुझे ऐसा कोई तरीका पसंद नहीं है।
प्रतिक्रिया से हैंडलिंग बाइनरी छवि के साथ मेरी समस्या को हल करने का कोई तरीका मौजूद है, जैसा कि यह स्क्रीनशॉट के हिस्से में ऊपर दिखाया गया है, है ना?
आप एपीआई पक्ष का उपयोग कर रहे क्या है? – FabianCook
@ फ़ैबियनकूक वास्तव में कहां है? जहां मैंने बेस 64/यूआरएल या कहां लौटने के लिए एपीआई बदलने का सुझाव दिया है? यदि आपने मुझे सावधानी से पढ़ा है, तो मैं इसका उपयोग न करने का कोई तरीका ढूंढना चाहता हूं और किसी अन्य तरीके/चाल का उपयोग करने का प्रयास करना चाहता हूं। सर्वर-साइड से बेस 64 प्रतिक्रिया बनाने के लिए - कोई समस्या नहीं, लेकिन मुझे बाइनरी छवि के रूप में इसे संभालने का तरीका खोजने की इच्छा है। –
आह ठीक है। चारों ओर देखो। लूट। – FabianCook