title: Reading unicode characters from csv file
body: <p>I have a <code>csv file</code> which contains words in english followed by their Hindi translation. I am trying to read the csv file and do some further processing with it. The csv file looks like so:</p>
  
  <pre><code>English,,Hindi,,,  
  ,,,,,  
  Cat,,बिल्ली,,,  
  Rat,,चूहा,,,  
  abandon,,छोड़ देना,त्याग देना,लापरवाही की स्वतन्त्रता,जाने देना  
  </code></pre>
  
  <p>I am trying to read the csv file line by line and display what has been written. The code snippet (<code>Java</code>) is as follows:  </p>
  
  <pre><code>   //Step 2. Read csv file and get the string.
              FileInputStream fis = null;
              BufferedReader br = null;
              try {
                  fis = new FileInputStream(new File(csvFile));
              } catch (FileNotFoundException e1) {
                  // TODO Auto-generated catch block
                  e1.printStackTrace();
              }
  
              boolean startSeen = true;
              if(fis != null) {
                  try {
                      br = new BufferedReader(new InputStreamReader(fis, "UTF-8"));
                  } catch (UnsupportedEncodingException e2) {
                      // TODO Auto-generated catch block
                      e2.printStackTrace();
                      System.out.print("Unsupported encoding");
                  }
                  String line = null;
                  if(br != null) {
                      try {
                          while((line = br.readLine()) != null) {
                              if(line.contains("English") == true) {
                                  startSeen = true;
                              }
  
                              if((startSeen == true) &amp;&amp; (line != null)) {
                                  StringBuffer sbuf = new StringBuffer();
                                  //Step 3. Parse the line.
                                  sbuf.append(line);
                                  System.out.println(sbuf.toString());
                              }
                          }
                      } catch (IOException e1) {
                          // TODO Auto-generated catch block
                          e1.printStackTrace();
                      }
                  }  
  }
  </code></pre>
  
  <p>However, the following output is what I get:  </p>
  
  <pre><code>English,,Hindi,,,
  ,,,,,
  Cat,,??????,,,
  Rat,,????,,,
  abandon,,???? ????,????? ????,???????? ?? ???????????,???? ????  
  </code></pre>
  
  <p>My Java is not that great and though I have gone through a number of posts on SO, I need more help in figuring out the exact cause of this problem.</p>