UniversalDetectorを使うと文字コード自動判別ができるそうなんで使ってみよう。シフトJISのテキストファイルを文字コードを指定せずに読み込むと、文字化けして表示される。ただ、毎回文字コードを指定するのが面倒なので、自動で判別してみたい。
アンドロイドの場合は
「エクスプローラーからテキストファイルを選択して読み込んで表示する。」というのをやりたい。
まず、assetsフォルダーからテキストファイルを読み込んで表示する。下記のリンクではedittextを使っているが、
android studioにgradleから
implementation 'com.github.albfernandez:juniversalchardet:2.4.0'
を追加してsyncボタンを押すとインストールされるらしい。
UniversalDetectorの使い方はDetector.javaを下のリンクの通り作ってから。
テキストファイルをinputstreamで読み込んで
cs = Detector.getCharsetName(is);
csに判定された、文字コード入る。
そのままストリームリーダーで読み込めばいいのかなと思ったが。判定に使ったテキストが削られていた。
br = new BufferedReader(new InputStreamReader(is, cs));
AozoraEpub3に文字コード判別機能を入れれたらな。