Androidアプリ開発

UTF-8のデータをShift_JISに変換する

この記事は約5分で読めます。
記事内に広告が含まれています。
スポンサーリンク

この記事は Androidスマホ用のアプリ開発の中で、
今後の開発で再使用性が高いと思われるコーディングをまとめたものです。
Java での開発経験、XML構文規則、Android のアプリ開発経験がある方を対象としています。
Android のアプリ開発でお役にたててれば、嬉しいです。
(これから Android のアプリ開発や Java での開発を始めたい方への案内は、
記事の最後で紹介します)

この記事のテーマ


AndroidでUTF-8のデータをShift_JISに変換する

ポイント

Androidで日本語を含むデータを出力したファイルを、Widowsで読み込むと文字化けします。
これは文字コードが
AndroidUNICODEUTF-8)で、WindowsShift_JISMS932)だからです。
今回は、
Androidアプリから、Shift_JISのデータでファイル出力する方法について、紹介いたします。

文字コード変換を実装する

Androidで扱う文字コードがUTF-8であるため、出力時にShift_JISを指定して、ファイル出力します。

文字コード変換ファイルコピー

Andoridで日本語を含むファイルをInputStreamReaderUTF-8を指定して読み込み、OutputStreamWriterに文字コード(Shift_JIS)を指定して出力します。

    …
    private final String[] type = new String[] {
            Environment.DIRECTORY_DOCUMENTS,
            Environment.DIRECTORY_DOWNLOADS,
            Environment.DIRECTORY_PICTURES
    };
    private final File[] path = new File[type.length];
    …
    public void fileCopy(String inFile, int type, Uri uri, String charset) {
        ExecutorService executorService = Executors.newSingleThreadExecutor();
        executorService.execute(() -> {
            try (FileInputStream fileInputStream = new FileInputStream(new File(path[type], inFile));
                 InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, StandardCharsets.UTF_8);
                 OutputStream outputStream = context.getContentResolver().openOutputStream(uri, "wt");
                 OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream, charset);
                 BufferedReader bufferedReader = new BufferedReader(inputStreamReader)) {
                String data;
                while ((data = bufferedReader.readLine()) != null) {
                    outputStreamWriter.write(String.format("%s\n", data));
                }
            } catch (Exception e) {
                Log.d(TAG, Objects.requireNonNull(e.getMessage()));
                e.printStackTrace();
            }
            …
        });
    }

ファイルコピーの呼び出し

入力ファイルのAndroidストレージのファイルとフォルダ、出力先にGoogleドライブなども指定可能なUri 、出力時の文字コードを指定します。

    …
    fileCopy(inFile, 0, uri, "Shift-JIS")
    …

今回は、ここまでです。

事業所得の青色申告は、初年度無料の「やよいの青色申告オンライン」がオススメです。
帳簿管理から、確定申告(
e-Tax)まで一気通貫でオンラインで行えます💛
「弥生データのインポート」は、文字コードがShift_JISのデータしか受け付けません。

UTF-8のデータをShift_JISに変換している Androidアプリです。

誤字脱字、意味不明でわかりづらい、
もっと詳しく知りたいなどのご意見は、
このページの最後にある
コメントか、
こちらから、お願いいたします♪

ポチッとして頂けると、
次のコンテンツを作成する励みになります♪

ブログランキング・にほんブログ村へ

これからAndroidのアプリ開発やJavaでの開発を始めたい方へ

アプリケーション開発経験がない方や、アプリケーション開発経験がある方でも、Java や C# などのオブジェクト指向言語が初めての方は、Android のアプリ開発ができるようになるには、かなりの時間がかかります
オンラインスクールでの習得を、強くおススメします。

未経験者からシステムエンジニアを目指すのに最適かと、まずは無料相談から♪

未経験者からプログラマーを目指すのに最適かと、まずは無料カウンセリングから♪

カリキュラムとサポートがしっかりしています、お得なキャンペーンとかいろいろやっています♪

ゲーム系に強いスクール、UnityやUnrealEngineを習得するのに最適かと、まずは無料オンライン相談から♪

参考になったら、💛をポッチとしてね♪