簡體   English   中英

UTF-8 到 Java 中的字符串

[英]UTF-8 to String in Java

我對 UTF-8 字符集有一點問題。 我有一個 UTF-8 編碼文件,我想加載和分析它。 我正在使用 BufferedReader 逐行讀取文件。

BufferedReader buffReader = new BufferedReader(new InputStreamReader
(new FileInputStream(file),"UTF-8"));

我的問題是 Java 中的法線字符串方法(例如,trim() 和 equals())不適合在我為讀取 BufferedReader 的所有內容而創建的循環的每次迭代中從 BufferReader 讀取的行中使用. 例如,在編碼文件中,我有< menu >我希望我的程序按原樣處理它,但是,現在,它被視為?? < menu > ?? < menu >夾雜着其他一些奇怪的字符。 我想知道是否有一種方法可以刪除所有字符集編碼並只保留純文本,這樣我就可以使用字符串 class 的所有方法而不會出現復雜情況。 謝謝

如果您的 jdk 不是太舊(1.5),您可以這樣做:

Locale frLocale = new Locale("fr", "FR");
Scanner scanner = new Scanner(new FileInputStream(file), "UTF-8");
scanner.useLocale(frLocale);

for (; scanner.hasNextLine(); numLine++) {
 line = scanner.nextLine();
}

掃描儀還可以使用除空格以外的分隔符。 此示例從字符串中讀取多個項目:

         String input = "1 fish 2 fish red fish blue fish";
         Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");
         System.out.println(s.nextInt());
         System.out.println(s.nextInt());
         System.out.println(s.next());
         System.out.println(s.next());
         s.close(); 

prints the following output:

         1
         2
         red
         blue 

在此處查看掃描儀文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM