के रूप में इनपुटस्ट्रीम पढ़ना मैं इंटरनेट पर लाइन-दर-लाइन text/plain
फ़ाइल से पढ़ने की कोशिश कर रहा हूं। कोड मैं अभी है:यूटीएफ -8
URL url = new URL("http://kuehldesign.net/test.txt");
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
LinkedList<String> lines = new LinkedList();
String readLine;
while ((readLine = in.readLine()) != null) {
lines.add(readLine);
}
for (String line : lines) {
out.println("> " + line);
}
फ़ाइल, test.txt
, ¡Hélló!
, जो मैं आदेश एन्कोडिंग का परीक्षण करने में उपयोग कर रहा हूँ में शामिल है।
जब मैं OutputStream
(out
) की समीक्षा करता हूं, तो मुझे इसे > ¬°H√©ll√≥!
के रूप में देखा जाता है। मुझे विश्वास नहीं है कि यह OutputStream
के साथ एक समस्या है क्योंकि मैं बिना किसी समस्या के out.println("é");
कर सकता हूं।
InputStream
को यूटीएफ -8 के रूप में पढ़ने के लिए कोई विचार? धन्यवाद!
HTTP प्रोटोकॉल एन्कोडिंग निर्दिष्ट करता है। आप लाइब्रेरी एपीआई का उपयोग क्यों नहीं कर रहे हैं जो आपके लिए इसे संभालता है? आपको इस तरह एन्कोडिंग का अनुमान लगाना नहीं चाहिए। मेरा नकारात्मक मतलब नहीं है: आप बहुत अच्छा कर रहे हैं! मुझे आश्चर्य है कि क्या कोई आसान तरीका नहीं है। – tchrist
मुझे उस सर्वर तक पहुंच नहीं होगी जो 'टेक्स्ट/सादा' फ़ाइल की सेवा कर रही है, दुर्भाग्य से, और यह यूटीएफ -8 एन्कोडिंग का उपयोग नहीं कर रहा है। मुझे किसी भी अच्छे नेटवर्क पुस्तकालयों से अवगत नहीं था; कोई सुझाव? –
[डॉक्स] (http://download.oracle.com/javase/6/docs/api/java/net/URL.html) को देखते हुए, मुझे नहीं लगता कि आपको एन्कोडिंग बिल्कुल निर्दिष्ट करना होगा। मुझे आश्चर्य है कि वे आपको एक बाइट स्ट्रीम देते हैं! आपके पास अंतर्निहित [URLConnection] (http://download.oracle.com/javase/6/docs/api/java/net/URLConnection.html) तक पहुंच है, जिससे आप सामग्री-एन्कोडिंग की जांच कर सकते हैं, फिर एक खोलें सही तर्क के साथ इनपुटस्ट्रीम रीडर। स्रोत की एक त्वरित जांच कुछ भी नहीं बदली है जो आपके लिए ऐसा लगता है, जो कि बहुत कमजोर लंगड़ा और त्रुटि प्रवण प्रतीत होता है, इसलिए शायद मुझे कुछ याद आया। – tchrist