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

  • BuzzFeedVideo

    BuzzFeedVide

    10 AĞUSTOS 2011
  • graham025

    graham025

    25 NİSAN 2006
  • kremosakhaz

    kremosakhaz

    25 AĞUSTOS 2006