在数据库中存储特殊字符

时间:2013-05-13 10:21:45

标签: java postgresql file-upload csv

我在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文件写的?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

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

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