mam kilka znaków ze który wygląda mniej więcej tak:Java przekształcić strumień znaków do ludzkiego „czytelnej” string
Комуникационна кабелна система
i czasami mam mieszankę tak:
Généralités
pierwszy przekłada się:
К о м у н и к а ц и о н н а к а б е л н а с и с т е м а
a drugi:
G é n é ralit é s
można zobaczyć z przeglądarki, a umieszczenie ich w organizmie.
Ale jak mogę uczynić wyjście java "prawdziwymi" znakami? Jakie jest powyższe kodowanie?
Próbowałem kilka rzeczy, i wreszcie ten (który nie działa):
import java.nio.charset.*;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
List<String> lst = new ArrayList<String>(); lst.add("К"); lst.add("о");
for (String s : lst) {
Charset utf8charset = Charset.forName("UTF-8");
Charset iso88591charset = Charset.forName("ISO-8859-1");
ByteBuffer inputBuffer = ByteBuffer.wrap(s.getBytes());
// decode UTF-8
CharBuffer data = utf8charset.decode(inputBuffer);
// encode ISO-8559-1
ByteBuffer outputBuffer = iso88591charset.encode(data);
byte[] outputData = outputBuffer.array();
System.out.println (new String(outputData))
}
Jest to kod HTML. –
te są nazywane bytami. jeśli szukasz konwersji typu entity-to-unicode, możesz znaleźć to, czego szukasz w ten sposób. – dldnh
@dldnh dzięki za wyjaśnienie! nie jest najłatwiejszą rzeczą do przeszukiwania sieci :) – momomo