Oracle Forms 文本字段提示和西班牙字符

Oracle Forms Text Field Prompt and Spanish Characters

我遇到了一个具有奇怪行为的 Oracle Form。将其从 Oracle 10gR2 转换为 Oracle 11gR1 时,它似乎丢失了西班牙字符“ñ”。这似乎只发生在文本字段提示中。表单中的其余元素似乎可以正确显示字符。关于什么可能导致此问题或检查什么以修复它的任何建议?我已经检查过安装的字体是否支持这个字符,并且 NLS 相关设置看起来没问题。

好吧,在尝试确定问题所在一整天后,似乎最简单的答案是正确的:此表单的原始开发人员似乎想确保字符显示正确,他已经一个糟糕的设置,所以他使用 SET_ITEM_PROPERTY 函数设置文本,并使用 CHR 函数转义字符。类似于以下内容:

SET_ITEM_PROPERTY('BLOCK.PASS_FIELD', PROMPT_TEXT, 'Contrase'||CHR(241)||'a: ');

这是针对属性中标题为 "Contraseña: " 的字段的提示。

在当前设置中,它可以工作,但在这个新环境中,我们使用的是 UTF8 编码,字母“ñ”的代码完全改变了。为了完整起见,utf8 中的代码将是 CHR(50097)。但我建议最好让您的 DBA 或 SYSADMIN 修复 NLS 设置,这样您就可以只使用提示或字段属性,而不必获取此 "creative" 并让其他开发人员浪费太多时间.

我从来没有想过要检查这个,因为属性似乎设置正确,但是创建一个具有相同属性的新字段的简单测试最终告诉我问题是特定于 4 个字段已经创建并搜索 code-based 属性更改让我发现这就是问题所在。所以我把这个答案留在这里,希望其他人能节省几个小时的时间,先检查简单的答案。