PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
java
[問題] 使用Scanner讀取utf-8會中斷讀取
作者:
baconcsie
(Bacon)
2016-06-27 00:54:16
各位大大好,小弟最近在寫一隻程式,必須要讀入utf-8的log資料
上面主要記錄了許多使用者的ID,而玩家來自各國,所以有各種語言
其中會遇到一些ID,使用記事本看會看到亂碼,用Notepad則會看到
一組編碼,例如xE4這樣,例如會有一個ID像這樣 SchxE4llbchen
小弟我原本是想讀到亂碼時,寫個特例處理掉,但是Scanner讀取卻
可能早在讀到那一個亂碼之前好幾10行,就顯示 hasNext() = false了
可是如果手動用文字編輯器去把那個亂碼刪掉,又可以完整讀完整個檔案
這讓我無法針對他去做處理,請問各位大大,該如何處理呢?
作者: iFEELing (ing)
2016-06-27 01:37:00
所以你的hasNext()=false 是為什麼? 那才是重點吧?
作者:
omidofor
(媽媽咪呀)
2016-06-27 02:43:00
換成Reader試試如何呢?
作者: iFEELing (ing)
2016-06-27 03:14:00
根據
https://goo.gl/CF5ppf
hasNext吃到一堆東西都會停等等 你 scanner 是餵 BufferedReader 給它吃的嗎
作者:
ripple0129
(perry tsai)
2016-06-27 03:25:00
猜測scanner底層讀進buffer時遇到就先掛點?才造成會是死在前幾行。純猜測,還是要run debug去抓吧
作者:
kyleJ
(資工人)
2016-06-27 08:34:00
Scanner會做很多判斷 很容易因為亂碼停止 用底層一點的BufferedReader或是新的API的Files.lines吧或是解決會存入亂碼的原因呢?
作者:
baconcsie
(Bacon)
2016-06-27 17:22:00
嗯嗯 我會改用更底層的api或其他api試試,至於來源檔不要有亂碼就沒法度了,那是別人的程式
作者:
Chikei
( )
2016-06-28 17:48:00
然而xE4不是亂碼.......那是變音字,德國人錯了嘛
作者:
tacovirus
(小璋丸)
2016-07-29 13:55:00
推 kyleJ 的作法,根據經驗 Scanner 可靠性不高
繼續閱讀
Re: [問題] 關於寫leet code的心態及寫法
phycheout
[問題] 關於寫leet code的心態及寫法
shiningboy
multidex 討論
HuangJC
Re: [問題] 有沒有人碰過所謂的靈異現象(multi-dex)
HuangJC
[問題] ResultSet問題
wadechen
[問題] JAVA說明文件的使用
ak77now
[問題] 存儲float比較好的方式
dwadefans
[問題] 有沒有人碰過所謂的靈異現象
HuangJC
[問題] 多型
sunlights
Re: [問題] socket的server與client互相傳值
qrtt1
Links
booklink
Contact Us: admin [ a t ] ucptt.com