#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
Комментариев нет:
Отправить комментарий