gpt4 book ai didi

java - 在 Oracle DB 表中存储字符串

转载 作者:行者123 更新时间:2023-12-01 18:00:08 24 4
gpt4 key购买 nike

我想对 Oracle DB 表执行 INSERT 操作。

我要插入的示例字符串是 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 端的问题吗?

谢谢

编辑:

 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
}

将 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();

最佳答案

您正在尝试使用“/”字符拆分不包含“/”字符的文本字符串。当然是行不通的。为什么我说你的字符串不包含“/”字符? 因为它是 URL 编码的。 URL 编码的目的是确保字符串不包含 URL 中有意义的各种字符。

您需要先对其进行 URL 解码。像这样的事情应该可以解决问题。

 String date = getDateFromUrl(url_stored_into_DB);
date = java.net.URLDecoder.decode(date, "UTF-8");

date.split ("/");

关于java - 在 Oracle DB 表中存储字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41675861/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com