Ява unicode парсинг байта

Я нахожусь только в процессе чтения некоторых данных из файла как поток байтов, и я только что столкнулся с некоторыми последовательностями unicode, что я не уверен, как лучше всего обращаться.

Каждый характер использует два байта, с только первым кажущимся, чтобы содержать фактические данные, так же например, последовательность 'доверие' сохранена в файле как:

```
0x74 0x00(t) 0x72 0x00(r) ...and so on

```

Обычно я просто использовал бы regex, чтобы ничем заменить ноли и поэтому удалить пробел. Однако места между словами в файле осуществляются, используя  `0x00 0x00` , таким образом пытаясь сделать, простая строка 'replaceAll' является видом питания его немного.

Я попытался играть вокруг с наборами кодирования Последовательности, такими как 'ISO-8859-1' и 'UTF-8/16', но каждый раз я заканчиваю с пробелом.

Я действительно создавал простой regex, чтобы удалить двойные нулевые шестнадцатеричные ценности, который является:

```
new String(bytes).replaceAll("[\\00]{2,},"");

```

Но это очевидно только работает на двойной ноль, и я действительно хотел бы ничем заменить единственные ноли и двойные ноли с фактический пробел ASCII/Unicode.

Я, возможно, поклялся, что одни из Явских параметров настройки формата строки имели дело с такого рода вещью, но я мог бы быть неправым. Таким образом, я должен работать над созданием regex, чтобы раздеть ноли, или Ява на самом деле обеспечивает механизмы для того, чтобы сделать его?

Спасибо

Это -  `"UTF-16LE"` .  `0x00 0x00`  на самом деле кодирует характер NUL в UTF-16, таким образом, это - то, что вы получите. 

Это кодирование может закодировать приблизительно миллион различных знаков, используя 2 или 4 байта за характер. Первые 256 знаков закодированы со вторым байтом  `0x00`  и если текст только содержит тех, это могло бы быть рассмотрено как бесполезное, но это требуется для остальной части знаков. Например, европейское обозначение денежной единицы  `€`  разоблачило бы как  `0xAC 0x20` .



>  Я нахожусь только в процессе чтения некоторых данных из файла как поток байтов, и я только что столкнулся с некоторыми последовательностями unicode, что я не уверен, как лучше всего обращаться.
> 
> 
> 

Преобразуйте их в последовательности, используя соответствующий набор символов, в этом случае UTF-16LE (UTF-16 с прямым порядком байтов, с байтом младшего разряда, сначала сопровождаемым старшим байтом)

```
String str = new String(bytes, "UTF-16LE");

```