Где установитьCharSet () для отображения строк из файлов UTF-8 на JPanel - PullRequest
0 голосов
/ 28 августа 2011

Я читаю текстовый файл в кодировке UTF-8 через JFileChooser и обращаюсь к содержимому файла через BufferedReader.readLine.Значения сохраняются в строках, которые я отображаю в JTextField.Мой вопрос: где я должен установить setCharSet () в процессе, чтобы правильно отображались специальные символы?

Большое спасибо!

Ответы [ 2 ]

2 голосов
/ 28 августа 2011

Вы не - вы просто загружаете их правильно из файла, в первую очередь.java.lang.String может представлять что-либо в файле UTF-8, по общему признанию используя суррогатные пары там, где это необходимо.Все, что вам нужно сделать, это убедиться, что вы правильно загрузили свой файл (укажите кодировку при чтении файла) и убедитесь, что ваш JTextField использует шрифт, который может отображать все соответствующие символы.

Вы говорите, что используете BufferedReader.readLine для чтения файла, но вы не показали, как вы создаете BufferedReader для начала.Вам, вероятно, следует использовать FileInputStream, завернутый в InputStreamReader, созданный с указанием правильной кодировки (в данном случае UTF-8), а затем обернутый в BufferedReader.

1 голос
/ 28 августа 2011

Кодировки и наборы символов необходимы, когда символы хранятся в виде байтов в массивах или файлах.Строки Java работают с полными символами Unicode (как и JTextField) и не нуждаются ни в какой кодировке или наборе символов.Поэтому нет необходимости устанавливать набор символов в JTextField.

Набор символов, тем не менее, важен при чтении файла.Вы можете инициализировать правильные читатели с помощью следующего кода:

Reader reader = new InputStreamReader(new FileInputStream(filename),"UTF-8");
BufferedReader br = new BufferedReader(reader));
...