こんにちは、まっさん(@Tera_Msaki)です。
この記事は Androidスマホ用のアプリ開発の中で、
今後の開発で再使用性が高いと思われるコーディングをまとめたものです。
Java での開発経験、XML構文規則、Android のアプリ開発経験がある方を対象としています。
Android のアプリ開発でお役にたててれば、嬉しいです。
(これから Android のアプリ開発や Java での開発を始めたい方への案内は、記事の最後で紹介します)
AndroidでUTF-8のデータをShift_JISに変換する
パウチだと凍らせて、クーラーボックスに入れると、保冷剤の変わりに使えて、溶けたら飲めるので一石二鳥です♪
ポイント
Androidで日本語を含むデータを出力したファイルを、Widowsで読み込むと文字化けします。
これは文字コードがAndroidがUNICODE(UTF-8 )で、WindowsがShift_JIS(MS932 )だからです。
今回は、Androidアプリから、Shift_JISのデータでファイル出力する方法について、紹介いたします。
文字コード変換を実装する
Androidの処理で扱う文字コードがUTF-8 であるため、出力時にShift_JISを指定して、ファイルコピーする方法が簡単です。
文字コード変換ファイルコピー
Andoridで日本語を含むデータを出力したファイルをInputStreamReaderにUTF-8 を指定して読み込み、OutputStreamWriterに出力先の文字コードを指定して出力します。
…
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")
…
今回は、ここまでです。
UTF-8のデータをShift_JISに変換している Androidアプリです。
「弥生データのインポート」は、文字コードがShift_JIS のデータしか受け付けません。
誤字脱字、意味不明でわかりづらい、
もっと詳しく知りたいなどのご意見は、
このページの最後にあるコメントか、
こちらから、お願いいたします♪
ポチッとして頂けると、
次のコンテンツを作成する励みになります♪

これからAndroidのアプリ開発やJavaでの開発を始めたい方へ
アプリケーション開発経験がない方や、アプリケーション開発経験がある方でも、Java や C# などのオブジェクト指向言語が初めての方は、Android のアプリ開発ができるようになるには、かなりの時間がかかります。オンラインスクールでの習得を、強くおススメします。
副業でアプリケーション開発と考えているなら、おススメです。
無料説明会に参加して、話を聞くだけでもためになるよ♪

ITスキルを身に付け、キャリアアップ。オンライン授業で仕事と両立できます。
まずは資料請求から♪
未経験者からシステムエンジニアを目指すのに最適かと、
まずは無料相談から♪

無料でJava言語を学べるのは、かなり魅力的♪
でも、応募資格は35歳以下です、、、
2022年12月から説明会が土曜日開催が追加されていますよ♪
説明会では、希望者に対してプログラミング体験もできるよ♪

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

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

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

参考になったら、💛をポッチとしてね♪
コメント欄