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

  • alex maybury

    alex maybury

    20 Aralık 2007
  • Andrea Lewis

    Andrea Lewis

    14 Mart 2013
  • InfinityWard

    InfinityWard

    19 EYLÜL 2006