0
Oracle DBテーブルにINSERT操作を実行します。Oracle DBテーブルに文字列を格納します。
私は挿入するサンプル文字列は、HTTPリクエストです:
a=5&b=hello&date=2016/12/31
次のようにこの文字列が格納されている:
a=5&b=hello&date=2016%2F12%2F31
URLエンコードされた文字ではなく、UTF-8エンコードを使用して、あること文字列。
以前は、私の文字列が期待どおりにUTF-8形式で保存されていました。 だから、私が取得することができたし、プロセス、それは
string.split('/')
を使用して問題は何ですか?私の開発環境では何が変わることがありますか? これはDBMS側の問題ですか?
おかげ
EDIT:
public static String func(HttpServletRequest request) {
String date = request.getParameter("date");
date.split("/"); IT WORKS!!!
}
public static String func(String url_stored_into_DB) {
String date = getDateFromUrl(url_stored_into_DB);
date.split("/"); IT DOESN'T WORK!!!
since it was stored with %2F
}
DBにURLを保存するために:
//HttpServletRequest request comes in to the server
String url = request.toString().substring(beginIndex, endIndex);
stmt = conn.prepareStatement("INSERT INTO table (URL) VALUES (?)");
stmt.setString(1, url);
stmt.executeQuery();
stmt.close();
2番目の文字列は、ブラウザのURLに表示されるようにエンコードされています。関連するJavaコードを表示できますか? –
@TimBiegeleisen HTTPリクエストがサーバに到着したら、すべてがOKです。例えば、dateパラメータを取得し、その上でsplit関数を使用することができます。 URLをデータベースに保存すると、エスケープ文字が格納されるため、分割機能は機能しません。 – Fab
データベースに保存するコードを表示しますか? –