アプリ版:「スタンプのみでお礼する」機能のリリースについて

Java初心者です。勉強のためにJavaを使ったアプリケーションの開発をしています。DBから取得した日本語文字列が文字化けしてしまうので、アドバイスを頂きたいです。

【環境】
Win XP Pro SP2
Eclipse 3.4.2
tomcat 6.0
JDK 1.6.0_14
Struts 1.3.10
Access 2000

上記の環境で簡単なログインページを作成しています。IDとパスワードを入力して、DB認証がOKならユーザ名称を取得してメニュー画面に遷移し、取得したユーザ名称を表示するという仕様です。 デバッグして追っていくと、以下のことが分かりました。

(1)ログイン画面で入力したID・パスワードは正しくサーブレットに渡っている
(2)SQLを発行してDBよりデータを取得する段階で文字化けが発生している

(2)でデータを取得する時に、HashMapのgetメソッドを使っています。文字化けしたデータは ???????G となってしまっています。DB(Access)からUnicodeへのエンコードがうまくいっていないのでしょうか?恥ずかしながらDB(Access)の文字コードの調べ方が分かりません。
※ドライバはsun.jdbc.odbc.JdbcOdbcDriverを使用しています。

【Login_Anken_Business.java】
public class Login_Anken_Business extends BaseBusiness {

public String getLoginUserName(String userid, String password) {
StringBuilder sbQuery = new StringBuilder();
sbQuery.append("SELECT");
sbQuery.append(" m04_name_user ");
sbQuery.append("FROM");
sbQuery.append(" M04_USER ");
sbQuery.append("WHERE");
sbQuery.append(" m04_id_user = '");
sbQuery.append(userid);
sbQuery.append("' ");
sbQuery.append("AND");
sbQuery.append(" m04_txt_password = '");
sbQuery.append(password);
sbQuery.append("' ");

HashMap<String, String> result = selectOneRecord(sbQuery.toString());
if (result == null) {
return null;
} else {
return result.get("m04_name_user"); → ここで文字化け発生
}
}
}

A 回答 (1件)

確か、Access 2000の文字データはSJIS?EUC?JIS位まで疑っておけば良いのかなと思いますけど。



http://www.atmarkit.co.jp/fwin2k/win2ktips/312ch …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!