17 Mart 2009, Salı
Dönüştürme UTF-8 Tek bayt olarak tutmak için nasıl-8859-1, ISO Java -
Bir dize UTF-8 olarak kodlanmış java-8859-1, ISO dönüştürmek için çalışıyorum. Dize örneğin, 'A' 'A' ISO-8859-1 olarak E2. temsil edilmektedir âabcd demek UTF-8'de iki bayt olarak temsil edilir. C3 A2 inanıyorum. Ben bir getbytes(kodlama) ve bayt ile yeni bir dize oluşturmak-8859-1, ISO sonra kodlama, iki farklı karakter. â. Karakteri yani âabcd aynı tutacak şekilde yapmanın başka bir yolu var mı?
CEVAP
17 Mart 2009, Salı
Eğer karşınıza alıyorsunuz karakter kodlamaları dışında UTF-16, olmamalısın kullanma java.lang.String
char
ilkel ... sadece kullanma byte[]
diziler ByteBuffer
nesneler. Sonra, java.nio.charset.Charset
kodlamaları arasında dönüştürmek için kullanabilirsiniz:
Charset utf8charset = Charset.forName("UTF-8");
Charset iso88591charset = Charset.forName("ISO-8859-1");
ByteBuffer inputBuffer = ByteBuffer.wrap(new byte[]{(byte)0xC3, (byte)0xA2});
// decode UTF-8
CharBuffer data = utf8charset.decode(inputBuffer);
// encode ISO-8559-1
ByteBuffer outputBuffer = iso88591charset.encode(data);
byte[] outputData = outputBuffer.array();
Bunu Paylaş:
Nasıl Onaltılık Dize ve Başkan versa i...
Java nasıl insan okunabilir biçime bay...
Nasıl Java hex bir dize bir bayt dizis...
Bayt içine Java Dize dönüştürmek için ...
dönüştürme bitmap dizi bayt için Java...