我们在应用程序中遇到了一个非常奇怪的问题,突然间我们开始注意到与文本字段中输入的其他文本一起保存的颠倒问号。这些颠倒的问号最初并非由用户输入,并且不清楚它们来自何处。我们在Java中使用Oracle 10g。 即使没有从Microsoft Word复制数据
,也会发生这种情况答案 0 :(得分:2)
当客户端无法呈现存储的字符时,通常会使用颠倒的问号。因此,数据库中的数据通常很好,这是客户端的限制。
我的第一步是使用DUMP函数来识别字节。 作为第一步,我将删除常见的“已知有效”字符(字母数字和空格)
select DUMP(translate(upper(col),'~ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 .,','~'),16) dmp,
translate(upper(col),'~ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 .,','~') val
from ...
where translate(upper(col),'~ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 .,','~') is not null;
然后我专注于剩下的东西。通常有一堆罕见但可接受的标点符号(点,逗号,连字符,撇号等)。我将它们逐一排除。
我无法排除的任何事情我会研究(即google那些字节,这就是为什么我使用DUMP的'16'选项,以使它们以十六进制表示)。它可能是一些重音字符,或者像“测试”之类的引用而不是平淡无奇的“测试”。
答案 1 :(得分:2)
用户是否可以在jsp字段中粘贴MS Word中的一行?
答案 2 :(得分:1)
答案 3 :(得分:0)
感谢大家的回复。一些如何在jsp中发生这种特殊的文本字段。当没有该字段的数据时,它在表中的该列中保存这个奇怪的字符。数据也无法在数据库中正确呈现。并且奇怪的是,每个记录都没有发生这种情况,因为我无法复制。
答案 4 :(得分:0)
我找到了解决这个问题的方法,但仍然没有意识到原因。
****导致错误的代码:****
if(certHolderLoanNumber == null){
certHolderLoanNumber =“”; //我们不想显示“null”
}
%GT;
贷款编号:“/>
解决问题的代码:
certHolderLoanNumber = certificateHolder.getCertHolderLoanNumber();
贷款编号:“/>
以前当certHolderLoanNumber字段显式设置为“”时,运行调试程序时检测到的值为“& nbsp”。当此值进一步保存到数据库中时,颠倒问题标记出现在xml clob中.GenUtils.nonnull也返回空字符串,但这次没有出现颠倒的问号。 奇怪!! 强>