#java #intellij_idea #utf_8 #cp1251
Работаю с файлами, мой код:
package com.company;
import java.io.*;
import java.util.Scanner;
public class Censore {
public static void main(String[] args) throws Exception {
FileReader fr = new FileReader("C:\\Users\\Stepan\\Список.txt");
Scanner scan = new Scanner(new InputStreamReader(new FileInputStream("C:\\Users\\Stepan\\Список.txt"),
"UTF-8");
String t = scan.nextLine();
fr.close();
System.out.println(t);
String[] mats = t.split(" ");
int longarray = mats.length;
Scanner fx = new Scanner(System.in);
String stroka = fx.nextLine();
for (int i = 0; i < longarray; i++) {
stroka = stroka.replaceAll(mats[i], "*цензура*");
}
System.out.println(stroka);
}
}
В файле русские символы. При их считывании Появляются значки �. Видимо тут проблема
в кодировке UTF-8. Работаю в Intellij IDEA. Подскажите, как исправить.
Ответы
Ответ 1
Как я уже писал выше: Стандартная виндовая кодировка - это CP-1251. В Java она кодируется как windows-1251, по этому в вашем коде нужно написать так: Scanner scan = new Scanner(new InputStreamReader(new FileInputStream("C:\\Users\\Stepan\\Список.txt"), "windows-1251")); UPD: Для справки: "ISO-8859-1" - западноевропейские языки "windows-1251" - стандартная Windows (русская) "UTF-8" - юникодОтвет 2
Попробуйте это Scanner scanner = new Scanner( new InputStreamReader(new FileInputStream("fileNmae"), "UTF-8"));Ответ 3
какая кодировка стоит у текстового файла? можно узнать нотпадом и т.д. и попробуйте узнать на каком кодировке выдает ИДЕА, можете проверит полученный результат вот тут: http://www.online-decoder.com/ru и ещё проверьте какая кодировка стоит на самой ИДЕА (Editor -> File Encodings)Ответ 4
ХЗ как исправить, но винда юзает кодировку cp1251, и там руские символы шифруются иными байтами, нежели в utf-8(которая юзается средой разработки в идее так точно), т.е считанные байты нужно переводить в символы с помощью кодировки cp1251
Комментариев нет:
Отправить комментарий