2

我想用阿拉伯語做一個搜索引擎,而且我已經有一個用英語搜索的代碼我只需要更改分析器,但是當我用阿拉伯語寫在控制檯,我更改爲UTF-8,我得到0發現,所以我認爲日食在代碼中給查詢提供阿拉伯語單詞,並且查詢無法識別此代碼,我的問題是如何才能使阿拉伯語對查詢可讀的單詞?在我的搜索引擎中添加一種語言,在Eclipse中使用阿拉伯字母

QueryParser parser = new QueryParser(Version.LUCENE_30, 
      "contents", new ArabicAnalyzer(Version.LUCENE_30)); 

回答

0

嘗試查看項目屬性,在「資源」部分。將您的文本文件編碼設置爲UTF-8 &看看是否可以解決問題。我假設你已經安裝了正確的字體。

+0

我嘗試,但以這種方式,我得到的字節代碼字我不能使用它 – Dilllllo 2011-06-05 19:56:57

0

我相信你正在閱讀文字是這樣的:

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 
try { 
    String token = reader.readLine(); 
    System.out.println(token); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

在這種情況下,字符編碼是完全一樣的當前系統的代碼頁(至少在Windows中)。問題是,Eclipse將允許您將阿拉伯文字母粘貼到其控制檯窗口,但在此過程中將丟失信息。我不確定是否將系統代碼頁(在OS區域選項中)設置爲windows-1256會有所幫助,但它可以。我試圖通過Charset.forName("windows-1256")作爲InputStreamReader的第二個參數,然後用阿拉伯鍵盤輸入東西,但它不是工作。好吧,但我們畢竟不是那麼無助。因爲這是爲測試(?右),你可以按照以下兩種方法之一來解決這個問題:

  • 使用一些基本的Swing UI(JFrame中+的JTextField + JLabel的,也許一些按鈕)
  • 提供轉義機制並輸入字符作爲代碼點(即\ u0629)

最好的修復方法是修復Eclipse(這是壞了),例如實現控制檯(System.console()),但我不太確定如果他們會接受這樣的補丁。

+0

我嘗試,但用這種方式,我得到的字節代碼字我不能使用它 – Dilllllo 2011-06-05 19:34:35

+0

您可能想編輯您的問題和帖子一些你嘗試過的代碼片段。我相信有人可以幫助你。 BTW。我可能是錯的,但對我來說「字節代碼」是指硬編碼,編譯它的字符串。我建議的方法都不會那樣做。 – 2011-06-05 20:10:38

0

您可以嘗試在控制檯中給出Unicode符號而不是阿拉伯字符。 使用像this one這樣的轉換器將您的阿拉伯文字轉換爲Unicode符號。

相關問題