2013-04-01 2 views
-1

Я в настоящее время чтения в файле в Java, где файл содержит список («символ полукокса» «вкладки» «6 запятыми булевы» «Новая линия»)Чтение в знак фунта и речевых знаков

Я читая его в хорошем состоянии и раскалывая его в порядке - однако у меня есть проблема, по которой знак фунта и речевые метки читаются как черный бриллиант с вопросительным знаком в нем. Это завинчивает все, потому что мне нужно определить, какие коды идут с символом символа.

Читаю в использовании:

public void read() 
{ 

    int i = 0; 
    try{ 
    // Open the file 
    InputStream is = am.open("combinations.txt"); 
    // Get the object of DataInputStream 
    DataInputStream in = new DataInputStream(is); 
    BufferedReader br = new BufferedReader(new InputStreamReader(in)); 
    String strLine; 
    //Read File Line By Line 
    while ((strLine = br.readLine()) != null && i < 53) { 
    String[] sep1 = strLine.split("\t"); 
    String[] sep2 = sep1[1].split(","); 
    entries[i] = new Entry(sep1[0].charAt(0), new CellPattern(Boolean.valueOf(sep2[0]), 
     Boolean.valueOf(sep2[1]),Boolean.valueOf(sep2[2]),Boolean.valueOf(sep2[3]), 
     Boolean.valueOf(sep2[4]),Boolean.valueOf(sep2[5]))); 
    i++; 
    } 
    //Close the input stream 
    in.close(); 
    }catch (Exception e){//Catch exception if any 
    System.err.println("Error: " + e.getMessage()); 
    } 
+0

Можете ли вы предоставить образец строки из файла, который вы читаете в том, что есть проблемы? Как вы показываете символы? charAt (0) должен вернуть знак # просто отлично ... –

+0

Пожалуйста, не используйте DataInputStream для чтения текстового файла. Вам это не нужно, поэтому, пожалуйста, удалите его, так как люди могут скопировать этот код. –

ответ

2

Это проблема кодирования, попробуйте изменить BufferedReader строки:

BufferedReader br = new BufferedReader(new InputStreamReader(in, "UTF-8")); 

Я не уверен, кодирующие вам нужно, так вы можете попробовать несколько разных.

Edit: Попробуйте «ISO-8859-1»

Смежные вопросы