в Java, какая схема кодирования является 8-битной US ASCII? - PullRequest
10 голосов
/ 03 июля 2011

Я хочу записать строку в файл, который ожидает кодирование 8-bit US ASCII.

Какую схему кодирования использовать для метода String.getBytes(encodingScheme)?

Спасибо.

Ответы [ 3 ]

11 голосов
/ 03 июля 2011

ASCII - это 7-битная схема кодирования, "8-битный ASCII" отсутствует.

Однако многие кодировки совместимы с ASCII, а некоторые являются 8-битными прозрачными (т. Е. Каждая двоичная серия отображается в правильную символьную строку, и наоборот, полезно, если вы отправляете двоичные данные по символьному каналу без кодирования в base64). или так). Если вы просто хотите быть ASCII-совместимым, UTF-8 - лучший выбор; если вам нужна 8-битная прозрачность, ISO-8859-1.

Обратите внимание, что приведенный выше совет полезен, только если вы хотите транспортировать только ASCII-строки или 8-битные двоичные строки. В большинстве случаев вы действительно хотите передать произвольные строки , и нет никакого способа найти правильную кодировку для них.

4 голосов
/ 03 июля 2011

US-ASCII

Список кодировок здесь: https://docs.oracle.com/javase/8/docs/technotes/guides/intl/encoding.doc.html

3 голосов
/ 03 июля 2011

Нет такой вещи как "8-битный ASCII".Есть несколько 8-битных «расширений» ASCII, включая ISO-8859-1 и Windows-1252 .Это, наверное, самые распространенные, но они не совпадают.Вам действительно нужно выяснить точно , какая кодировка ожидается.

Оба эти имени доступны через этих имен в Java - по крайней мере, они есть в моей установке JDK,(Например, вы можете обнаружить, что Windows-1252 недоступна при установке Linux.)

...