关于BC4j的中文问题,难道Bc4j不支持中文?

我用,jdeveloper9.0.3.4 开发一个应用,其中用到BC4j,

当我使用 <jbo:showValue>  标签的时候,现实中文是正常的

但我用<jbo:inputText> 和 <jbo:RenderValue> 的时候,就不支持中文,非常奇怪的问题。

有高手能赐教嘛!?
我也来说两句 查看全部回复

最新回复

  • xg8813 (2008-9-01 10:18:06)

    根本原因,我已经找到了。

    其实并非这些标签是否支持中文,是因为标签对应的class所做得处理不一样。

    首先,当用户使用标签输入相应的中文数据,并保存到数据库以后,BC会把中文字符转化为unicode字符,然后到保存到DB, 这点,你可以检查数据库相应的字段,可以证实。

    当用户在应用上面读取数据,并通过标签现实的时候,差别就出现了。

    某些标签,他的class里面会对现实的数据进行特殊字符处理, 其中一个字符是"&" , 而刚好unicode在html的编码正是 &#xxxxx;   所以,会把&这个字符转化为 $amp;

    经过这样的处理, 所对应的中文数据就不能再正常翻译会中文,而是一个 &#xxxxx; 的表达式。

    这就是造成乱码的根本原因。

    我还在研究解决方法,待续。。。。

    有说的不对的,请多多包含! 纯粹共享一下。
  • xg8813 (2008-9-10 10:39:52)

    这次上来,共享一下我研究的结果,这次问题彻底解决了!

    其实工作非常简单, 只需要两步

    1、修改struts-config.xml 里面的<controller debug="3" locale="true" processorClass="oracle.jbo.html.struts11.BC4JRequestProcessor" contentType="text/html;charset=GBK"/>
    把它改成你所需要的字符集

    2、把JSPs的页面中的  chartset 改成你所需要的字符集!

    非常简单!!!