我们在申请中遇到了一个非常奇怪的问题,突然间我们开始注意到了 颠倒的问号与其他文本一起保存到屏幕上的字段中。这些颠倒的问号最初并非由用户输入,并且不清楚它们来自何处。我们在Asp.Net上使用Oracle 10g。
这是一个问题的例子:“140,141)¿16-Oct-07”。如果有人之前已经看过这个并找到解决方法,请告诉我如何解决。
答案 0 :(得分:7)
这听起来像个字符编码问题。请检查数据库(表)的设置编码,以及数据库中传递数据的对象或字符串的编码。如果存在不匹配(ANSI中的数据库,UTF-8中的应用程序),则会出现这些类型的问题。
答案 1 :(得分:2)
Greg,你应该检查NLS_CHARACTERSET而不是NLS_NCHAR_CHARACTERSET设置。我打赌你是WE8ISO8859P1或类似的东西,而不是unicode。当提交的数据以unicode(可能是UTF8)和Oracle尝试将字符映射到WE8ISO8859P1字符集时,会出现问题。它对大多数人来说都很好,但对于高数字字符(例如140)没有成功。
所以是的,我在我们的应用程序中看到了同样的问题,在我们的例子中,它是由从MS Word复制的特殊引号(“示例”,“示例”)引起的。 Word会自动将双引号转换为其他引号。解决方案是将数据库转换为UTF-8。
答案 2 :(得分:0)
如果您的用户正在从MS Word进行复制,则可以关闭该功能。它是自动更正/自动格式功能的一部分。如果取消选中引号和撇号的替换选项,则应该没问题。在键入时,请务必关闭自动套用格式和自动套用格式中的替换。