2015-12-13 2 views
0

Я пытаюсь отобразить французские слова, полученные с сервера в JLabel, но все, что я получаю, - это испорченные слова (угадайте, не unicode или smth).JLabel unicode при получении данных с сервера

InetAddress addr; 
Socket sock = new Socket("192.168.0.104", 81); 
addr = sock.getInetAddress(); 
System.out.println("Csatlakoztam:" + addr); 
DataOutputStream adat = new DataOutputStream(sock.getOutputStream()); 
adat.write('a'); 
adat.flush(); 
BufferedReader input = new BufferedReader(new InputStreamReader(sock.getInputStream())); 
p = String.valueOf(input.readLine()); 
sock.close(); 

Это, как я хочу, чтобы отобразить текст: cp.add(new JLabel(connect())); Все, что я получаю: Image

Как я могу решить эту проблему?

+0

Вам необходима дополнительная информация. Что такое 'cp'? Что такое 'connect()'? Вы имеете в виду 'sock.connect()' случайно? – Mike

+0

CP - это контейнер в моем классе gui, 'cp = this.getContentPane();' 'connect()' - это функция, элементы которой показаны в исходном сообщении, она возвращает переменную p. –

ответ

0

При создании InputStreamReader вам, возможно, придется использовать различный Charset. Попробуйте:

BufferedReader input = new BufferedReader(new InputStreamReader(sock.getInputStream(), "charsetName")); 

где charsetName является одним из кодировок перечисленных here.

Смежные вопросы