日本語のテキストを含むCSVファイルを読み込んで、このファイルからDBにデータを書き込もうとしています。CSV は、私があまり慣れていない Flex コードを介してアップロードされます。しかし、私のバックエンド側には、ファイルの内容を含む単純な byte[] があります。私は次のコードを使用しています:
//content is an array of bytes, returned by Flex side
ByteArrayInputStream in = new ByteArrayInputStream(content);
BufferedReader br = new BufferedReader(new InputStreamReader(in, Const.ENCODING_SHIFT_JIS));
String strLine;
try {
while (true) {
strLine = br.readLine();
//processing CSV line by line and eventually writing data to DB
...
strLine 変数をデバッグしているときに、日本語の漢字の代わりに疑問符しか表示されません (特に、漢字の裵でテストしました)。他の日本語の文字 (たとえば、〒文字) は問題ないようです。デバッグ ウィンドウ (および後で私の DB) では、次のように表示されます。
私が同じことをしているが、コードに Const.ENCODING_SHIFT_JIS の代わりに UTF-8 と Const.UTF-8 をエンコードするファイルがある場合、すべて正常に動作します。ただし、クライアントは Shift-JIS のサポートが必要です。たぶん、誰かがこの問題を解決する方法を教えてくれるかもしれませんが、少なくともどの特定の領域 (flex、java、shift-jis エンコーディング自体...) である可能性がありますか?