2013-01-02 22 views
2

我正在通過JDBC/ODBC到Microsoft Access進行連接。之後,我進行查詢以從Microsoft Access中選擇行,然後將這些結果寫入TXT文件。一切都還好,但我有一些包含重音符號的字符串,這些字符串顯示爲'?'在TXT文件中。我已經嘗試過用java編寫文件的各種形式的方法,例如PrintWriter,FileWriter,Outputstream等等,其中包括爲這些方法添加字符編碼參數(UTF-8或ISO-8859-1)。我需要任何幫助以某種方式以正確的方式顯示這些字符。謝謝。通過JDBC/ODBC/Microsoft Access進行字符編碼

+0

幾個問題,你是如何讀取文本文件?並且是來自正確訪問的信息? – BevynQ

+0

@BevynQ嗨。我正在通過直接打開它來閱讀文本文件。是的,信息來自Microsoft Access正確,除了由於重音而顯示爲'?'的字符。 – Marco

回答

0

嘗試下面的線,

String OUTPUTFILE = "PATH/TO/FILE/"; 
    BufferedWriter bf = new BufferedWriter(new OutputStreamWriter(
         new FileOutputStream(OUTPUTFILE),"UTF8")); 

一旦你添加到您的代碼,你應該使用bf.write('VALUE')UTF8字符文件被罰款。此外,還要確保將文本編輯器的編碼設置爲UnicodeUTF8,如果不這樣做,看起來孔洞過程不起作用,這會導致更多混淆。

編輯:

要閱讀UTF8 txts

String IPUTFILE = "PATH/TO/File"; 

BufferedReader in = new BufferedReader(
        new InputStreamReader(
        new FileInputStream(INPUTFILE), "UTF8")); 

然後讀線String str = in.readLine();

+0

此代碼不適用於/寫入文件。這是我如何把它放在我的代碼中: String OUTPUTFILE =「text.txt」; BufferedWriter bf = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(OUTPUTFILE))); bf.write(「a string」); 沒有顯示任何人物。 – Marco

+0

錯過了bf.close();我會再試一次。 – Marco

+0

我試過了,它顯示了字符串,但是卻帶有字符「?」。 – Marco

相關問題