【问题标题】:Store special characters in database在数据库中存储特殊字符
【发布时间】:2013-05-13 10:21:45
【问题描述】:

我在 JAVA 中有一个上传功能,可以使用 CSV 文件将数据导入到 postgresql 9.2 数据库中。目前数据为:

ID, DESCRIPTION, PRICE, EOR
1001, "Lenovo Laptop" 20% Discount @ Jackson's Street, 500$, EOR
1002, "Samsung Laptop" 10% Discount @ Jackson's Street, 440.90$, EOR

string description = line[1];

现在,当我尝试将DESCRIPTION 字段值存储到数据库中时,它会抛出错误。无论如何,我可以将这些数据完全按照 CSV 文件的写入方式存储到数据库中吗?

【问题讨论】:

  • 我不确定,但这可能与联想笔记本电脑和三星笔记本电脑周围的" 有关。我想你必须使用转义字符。也许'.
  • 它会抛出哪个错误?一些代码也可能有帮助......

标签: java postgresql file-upload csv


【解决方案1】:

那是奇怪的伪 CSV。通常包含双引号的记录会将它们转义或将它们包装在整个记录周围的另一组引号中。

您可能需要覆盖 copy 命令中的引号字符,以便 Pg 不会将双引号解释为 CSV 引用。

【讨论】:

    【解决方案2】:

    通常它不会在上传过程中引发任何错误。如果真的因为特殊字符而引发任何错误,那只是因为 Craig Ringer 提到的原因。您可以通过创建如下自定义函数来避免这种情况:

    removeSpecialCharacter(String inputStr) {
       inputStr = inputStr.replace('"', '');
    }
    

    但是你可能会遇到从数据库中提取这些特殊字符并使用它的问题。如果要在浏览器中显示这些特殊字符,则需要对特殊字符使用转义方法。转义特殊字符的详细过程是here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-08
      • 1970-01-01
      • 1970-01-01
      • 2014-10-15
      • 2021-07-06
      • 2015-04-06
      • 2017-01-01
      相关资源
      最近更新 更多