从代理DB中获取动态组件时的字符编码问题-Tridion、Oracle、JSP

从代理DB中获取动态组件时的字符编码问题-Tridion、Oracle、JSP,tridion,tridion-2011,tridion-content-delivery,Tridion,Tridion 2011,Tridion Content Delivery,从代理数据库查看动态内容时,我遇到了字符编码问题 我有一个scriptlet,它调用代理数据库来生成XML字符串,然后由XSL解析 在调试此问题时,我已剥离了代码,脚本现在如下所示: ..... strOutput= "<xml>"; ComponentPresentationFactory cpf = new ComponentPresentationFactory(PublicationID); for (int i =0; i < itemURIs.length; i

从代理数据库查看动态内容时,我遇到了字符编码问题

我有一个scriptlet,它调用代理数据库来生成XML字符串,然后由XSL解析

在调试此问题时,我已剥离了代码,脚本现在如下所示:

.....

strOutput= "<xml>";
ComponentPresentationFactory cpf = new ComponentPresentationFactory(PublicationID);

for (int i =0; i < itemURIs.length; i++)
{
ComponentPresentation cp = cpf.getComponentPresentation(itemURIs[i], strComponentTemplateURI);  
      if(cp != null){
        String content = "";
        content = cp.getContent();
        strOutput += content;
      }
}
strOutput+= "</xml>";

......
以前有没有其他人遇到过类似的例子。看起来数据库存储、到数据库的连接或cp.getContent()都有问题;方法

非常感谢您的帮助,如果您还有任何问题,请告诉我

问候,,
Chris

字符编码问题可能相当复杂。在您的情况下,由于您已经做了一些调查,我将开始检查jsp文件是否具有正确的页面编码集:

<%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>


看看这篇文章,它讨论了解决编码问题的方法:

从SQLPlus检索内容时是什么样子的?您是否尝试过将日志级别设置为调试并检查getContent调用中的任何编码问题?您是否尝试过使用ComponentPresentationAssembler而不是ComponentPresentationFactory?您好,我已经通过Oracle DB manager查看了中的内容,查看时没有编码问题,但这可能是因为查看器正在处理编码。我刚刚用ComponentPresentationAssembler而不是ComponentPresentationFactory实现了我的代码,它有完全相同的最终结果。感谢您的快速响应。您确定您的CP(cd_storage_conf.xml中的typeMapping=ComponentPresentation)已发布到数据库中吗?
<dynamicContent>
    <tcm_id>tcm:345-23288</tcm_id>
    <title><![CDATA[LED Road R250 - Maximum LED performance for street and highway illumination]]></title>
    <subtitle><![CDATA[Außenbeleuchtung ]]></summary>
</dynamicContent>
SQL> select * from v$nls_parameters where parameter like '%CHARACTERSET%'; 

PARAMETER VALUE 

NLS_CHARACTERSET UTF8 
NLS_NCHAR_CHARACTERSET UTF8 
<%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>