SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • jocc talking shit

    jocc talking

    6 NİSAN 2007
  • PomplamooseMusic

    PomplamooseM

    28 HAZİRAN 2008
  • videoisunrelated

    videoisunrel

    5 Mart 2009