javaで作るwebアプリで扱う文字コード(日本語)について
javaで作るごく普通のwebアプリで扱う文字コード(日本語)についての質問です。
プレゼンテーション層-ビジネスロジック層の2層アーキテクチャで、データベースは
無く、ビジネスロジック層で入力ファイルを処理して結果を画面に出すというアプリです。
javaのデフォルト文字コードはUTF-8等だそうですが、例えばクライアントが
Linuxマシンの時は、入力テキストファイルは普通、EUC-JPと思います。
以下、2点質問です。
1.この時、EUC-JPのテキストからUTF-8への変換は、JVMが自動的にするのですか?
Yesだったら、クライアント側はプラットフォームの種類にかかわらず、
文字コードを意識する必要はないのでしょうか。
Noだったら、一般的にはどこがするのですか?
2.1の答えがどちらにしても、クライアントのOSのデフォルトのコードを
UTF-8に変更する必要は無いですよね?関連する他のアプリケーションやミドルウェア
がUTF-8で動作するのかの検証は必要ないですよね?
もし認識が違っておりましたら、教えて下さい。
サーブレットとか画面周りの知識が無いので、質問の仕方がおかしいところが
ありましたら、申し訳ありません。
No.2ベストアンサー
- 回答日時:
Bruce Eckel, "Thinking in Java (4th Edition)" (Prentice Hall, 2006)
によると、p.922~p.923に、次のようにあります。
Java 1.1 made some significant modifications to the fundamental I/O stream library.
When you see the Reader and Writer classes, your first thought (like mine) might be that these were meant to replace the InputStream and OutputStream classes.
But that’s not the case.
Although some aspects of the original streams library are deprecated (if you use them you will receive a warning from the compiler), the InputStream and OutputStream classes still provide valuable functionality in the form of byte-oriented I/O, whereas the Reader and Writer classes provide Unicode-compliant, character-based I/O. In addition:
1. Java 1.1 added new classes into the InputStream and OutputStream hierarchy, so it’s obvious those hierarchies weren’t being replaced.
2. There are times when you must use classes from the “byte” hierarchy in combination with classes in the “character” hierarchy. To accomplish this, there are “adapter” classes:
InputStreamReader converts an InputStream to a Reader and OutputStreamWriter converts an OutputStream to a Writer.
The most important reason for the Reader and Writer hierachies is for internationalization.
The old I/O stream hierarchy supports only 8-bit byte streams and doesn't handle the 16-bit Unicode characters well.
Since Unicode is used for internationalization (and Java's native char is 16-bit Unicode), the Reader and Writer hierarchies were added to support Unicode in all I/O operations.
In addition, the new libraries are designed for faster operations than the old.
>Linuxマシンの時は、入力テキストファイルは普通、EUC-JPと思います。
私の環境ではUTF-8です。
>関連する他のアプリケーションやミドルウェア
>がUTF-8で動作するのかの検証は必要ないですよね?
あります。(レガシーなものを使う場合等)
もっとも、こういう文字コードの問題を解決するためにUnicodeが多くの方々の多大の努力によって開発されたにも関わらず、未だにUnicodeを使わずに、単にWindowsマシンだというだけで、ShiftJISを使う人が未だにあとをたたないのは、全くはた迷惑な話で、改善していって欲しいもんです。
お礼が遅くなって、大変申し訳ありませんでした。ご回答、どうもありがとうございました。
Linuxマシンは最近はUTF-8になっているのですね。自分が使っていたものが古かったです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- PostgreSQL PostgressからMySQL(MariaDB)へ構造を変更する際のTimestamp等について 2 2023/04/04 12:09
- Outlook(アウトルック) PCで登録途中の画面から認証コードを確認する方法を教えてください。 3 2022/09/29 06:11
- Windows 8 メモ帳による文字コード変換 2 2022/09/01 18:38
- その他(プログラミング・Web制作) 文字コード及びフォントに関する次の記述を読み,適切なものをすべて選べ。 ASCIIとは,英数字だけを 4 2023/01/11 19:10
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- 労働相談 合意済み仕様の商品納入後における仕様変更要求への対応について 5 2023/04/19 09:41
- その他(プログラミング・Web制作) 次に、楽天のアジャイル就活に参加して、1日で内定を獲得できる。私は大企業に就職できる? 2 2022/04/17 13:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
IISワーカープロセスが原因でCP...
-
C#のメモリマップドファイルに...
-
java起動時の日本語引数文字化...
-
JavaアプレットはWebブラウザ上...
-
unzip32.dllの利用について(64b...
-
JSPファイルで生じるエラーをど...
-
Javaでのエラーについて
-
gitでバージョン指定してダウン...
-
EclipseでJavaコンパイラのバー...
-
データベースのデータをTextBox...
-
JavaとAndroidアプリ(Java)違...
-
javaのジェネリックスでTとEの...
-
MSFormsとは何ですか?
-
バイナリファイルの著作権など...
-
VBAの「for i=1 to cells(…」...
-
サイドワインダーのドライバ
-
Eclipseにdllがうまく読み込めない
-
MSCOMCTL.OCXのアップデートの方法
-
javacのコンパイルでファイルが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
IISワーカープロセスが原因でCP...
-
VBのWPFとはなんでしょうか?
-
unzip32.dllの利用について(64b...
-
プラグインとパッチの違いは?
-
意味が分からないエラー
-
帳票出力について
-
java3dが動かない
-
32ビットのアプリで、64ビットO...
-
ASP(VB).NETでの背景色変更
-
ログオフ中でもアプリケーショ...
-
C#のメモリマップドファイルに...
-
AccessとVBの違いについて
-
Java でネイティブアプリケーシ...
-
このVBAでExcelアプリケーショ...
-
HTMLアプリケーションの作成
-
[VB.2005]クライアントからWEB...
-
C++からC#へ
-
JAVAプログラムをWEB表示させる...
-
SurfaceViewの一時停止や再開方法
おすすめ情報