Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Open a BufferedReader in UTF-8

I have a csv file with characters like Cité, but after make the insert into the DB, I see this Cit¿

I open the file as a BufferedReader, but I don't know how to do it in UTF-8

BufferedReader br = new BufferedReader(new FileReader(csvFile));
like image 385
Nunyet de Can Calçada Avatar asked Nov 15 '25 12:11

Nunyet de Can Calçada


2 Answers

You could explictly use a FileInputStream and an InputStreamReader using StandardCharsets.UTF_8, but it's probably simpler to use Files.newBufferedReader:

Path path = Paths.get(csvFile);
try (BufferedReader reader = Files.newBufferedReader(path)) {
    // Use the reader
}

It's worth getting to know the Files class as it has a bunch of convenience methods like this.

like image 109
Jon Skeet Avatar answered Nov 18 '25 05:11

Jon Skeet


You can use FileInputStream:

BufferedReader in = new BufferedReader(
           new InputStreamReader(
                      new FileInputStream(fileDir), "UTF8"));
like image 25
xingbin Avatar answered Nov 18 '25 06:11

xingbin



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!