2017-08-14 56 views
0

我正在使用Oracle SQL Developer,并且我执行的查询已打印在其控制台中,但未在jsp中的Java控制台中打印。SQL查询返回的撇号不会被打印在Java中

  • 在调试模式下(inspect模式或varibles schede)甚至没有出现字符,它将两个字一起显示出来。
  • 在Java控制台中显示为'?'
  • 在JSP中为'[0092]'。它可能是编码问题?

查询是一个简单的选择:

SELECT something, somethingElse FROM myTable where filter = 'someArgument'; 

这是我的executeQuery()后检索值:

//here is already not being printed. But the jsp shows it as unreadable character. 
    resultSet.getObject(i).toString(); 

这是我怎么把它在jsp:

stringBuffer.append("<option value='" 
+ mapEntryElement.getKey() + "'>"+ mapEntryElement.getValue().toString() + "</option>"); 

我试过把这个添加到JSP中,但没有:

<%@ page language="java" contentType="text/html; charset=utf-8" %> 

任何想法?

+0

为什么你使用'getObject(i).toString()'而不是'getString(i)'?但是,是的,听起来可能是Java语言环境和数据库/会话设置之间的不匹配。据推测,这是某种类型的卷曲报价(给出了'[这一个?](http://www.fileformat.info/info/unicode/char/92/index.htm)),而不是一个正常的'“'。您可以使用Oracle中的dump()函数来检查值并查看它的真实含义。 –

+0

@AlexPoole我正在使用getObject(i).toString()使用方法cointainer它不是由我做的,我不能修改它。所以我检查了数据库表,并且你是对的,有一个口音或某物而不是(')。我用正确的字符串做了更新,现在正在工作。回答这个问题,我可以标记为已解决。 – tomyforever

回答

0

这写在数据库中是不好的。这是一个重音,而不是撇号