Странный String.getByte (Кодировка) - PullRequest
1 голос
/ 20 августа 2009

Я пытаюсь это:

byte[] b = String.getBytes("ASCII") and get an UnsupportedEncodingException Exception

String fName = new String(b,"ASCII");

- got the same when used

byte[] b = String.getByte("ISO8859_1");
String fName = new String(b,"ISO8859_1");

edit: getByte изменен на getBytes

Ответы [ 4 ]

7 голосов
/ 20 августа 2009

Этот код не будет компилироваться - это String.getBytes(), а не String.getByte(), и это метод экземпляра, а не статический метод. Всегда стоит вырезать и вставить настоящий пример, с которым вы работаете (даже если это просто фиктивное приложение).

Однако, если у вас есть подобный код, который компилируется , вам следует использовать "US-ASCII" и "ISO-8859-1" в качестве имен, как описано в Charset JavaDoc .

2 голосов
/ 20 августа 2009

Я думаю, вы хотите что-то более похожее на это:


import java.io.UnsupportedEncodingException;


public class Encoding
{
    public static void main(String[] args) throws UnsupportedEncodingException
    {
        String s = "Hello world";
        byte[] b = s.getBytes("US-ASCII");
    }
}

0 голосов
/ 11 апреля 2011

Хотя стоит отметить это все еще нерешенная ошибка ...

" ОЖИДАЕМЫЕ ПРОТИВ ФАКТИЧЕСКОГО ПОВЕДЕНИЯ :

Смехотворное снижение производительности при использовании кодирования «US-ASCII» относительно кодирования «ASCII». Есть абсолютно нет причин, почему разработчики должны ожидать такого сильно отличающиеся профили производительности при выполнении этого код для этих двух кодировок. "

0 голосов
/ 20 августа 2009

в соответствии с Javadoc вы должны использовать: "US-ASCII"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...