暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Teamcenter查询迁移中文乱码问题解决

PLM有个号 2021-09-17
1475

前言:

    Teamcenter系统配置迁移时候,需要将客制化查询从原有系统导出后再导入新系统,比如从dev系统导出查询到sit系统等,有时候会遇到中文乱码问题,需要特殊处理一下。

错误:

    项目中有个客制化查询里“用户条目本地化关键字”使用的是中文,导出查询文件时候中文“创建时间早于”和“创建时间晚于”均变成了乱码。


图1 :导出查询中文乱码

    <?xml version="1.0" encoding="utf-8"?>
    <!-- GENERATED BY: PLM XML SDK 7.0.11.069 -->
    <plmxml_bus:PLMXMLBusinessTypes xmlns="http://www.plmxml.org/Schemas/PLMXMLSchema"
    xmlns:plmxml_bus="http://www.plmxml.org/Schemas/PLMXMLBusinessSchema"
    language="en-us" time="21:10:48" schemaVersion="6" author="Teamcenter V12000.4.1.11_20201002.00 - test@IMC--1807451922(-1807451922)" date="2021-03-15" languages="cs-cz de-de en-us es-es fr-fr it-it ja-jp ko-kr pl-pl pt-br ru-ru zh-cn zh-tw">
    <plmxml_bus:SavedQueryDef id="id1" name="__FX_L6QueryEDACOMPRevision" nameRef="#id2" descriptionTextRef="#id3" queryFlag="0" queryClass="EDAComp Revision">
    <Description>Find workspace object(s)</Description>
    <ApplicationRef application="Teamcenter" label="g7vB0ncUJR0huD" version="g7vB0ncUJR0huD"></ApplicationRef>
    <plmxml_bus:QueryClause id="id4" stringValue="SELECT qid FROM EDAComp Revision WHERE &quot;object_name&quot; = &quot;${object_name = }&quot; AND &quot;owning_user.user_id&quot; = &quot;${user_id = }&quot; AND &quot;fx8_Category&quot; = &quot;${fx8_Category = }&quot; AND &quot;fx8_DellSymbol&quot; = &quot;${fx8_DellSymbol = }&quot; AND &quot;fx8_FootprintCategory&quot; = &quot;${fx8_FootprintCategory = }&quot; AND &quot;fx8_StandardPN&quot; = &quot;${HHPN = }&quot; AND &quot;fx8_ItemType&quot; = &quot;${fx8_ItemType = }&quot; AND &quot;fx8_MfrPN&quot; = &quot;${fx8_MfrPN = }&quot; AND &quot;fx8_PrjName&quot; = &quot;${fx8_PrjName = }&quot; AND &quot;fx8_StandardPN&quot; = &quot;${StandardPN = }&quot; AND &quot;fx8_Symbol&quot; = &quot;${fx8_Symbol = }&quot; AND &quot;creation_date&quot; &gt;= &quot;${鍒涘缓鏃堕棿鏃╀簬 = }&quot; AND &quot;creation_date&quot; &lt;= &quot;${鍒涘缓鏃堕棿鏅氫簬 = }&quot;"></plmxml_bus:QueryClause></plmxml_bus:SavedQueryDef>
    <plmxml_bus:Text id="id2" primary="en-us"></plmxml_bus:Text>
    <plmxml_bus:Text id="id3" primary="en-us"></plmxml_bus:Text></plmxml_bus:PLMXMLBusinessTypes>


    当将这个有乱码的导出文件导入另外的系统时候,中文查询条件仍然是乱码状态。



    图2 :导入包含乱码的查询文件到另外的系统仍然是乱码状态

    解决:

        将导出的查询文件中encoding由utf-8改为gbk2312,并将乱码部分用中文修改一下

    图3:修改后的查询文件


      <?xml version="1.0" encoding="gbk2312"?>
      <!-- GENERATED BY: PLM XML SDK 7.0.11.069 -->
      <plmxml_bus:PLMXMLBusinessTypes xmlns="http://www.plmxml.org/Schemas/PLMXMLSchema"
      xmlns:plmxml_bus="http://www.plmxml.org/Schemas/PLMXMLBusinessSchema"
      language="en-us" time="21:10:48" schemaVersion="6" author="Teamcenter V12000.4.1.11_20201002.00 - test@IMC--1807451922(-1807451922)" date="2021-03-15" languages="cs-cz de-de en-us es-es fr-fr it-it ja-jp ko-kr pl-pl pt-br ru-ru zh-cn zh-tw">
      <plmxml_bus:SavedQueryDef id="id1" name="__FX_L6QueryEDACOMPRevision" nameRef="#id2" descriptionTextRef="#id3" queryFlag="0" queryClass="EDAComp Revision">
      <Description>Find workspace object(s)</Description>
      <ApplicationRef application="Teamcenter" label="g7vB0ncUJR0huD" version="g7vB0ncUJR0huD"></ApplicationRef>
      <plmxml_bus:QueryClause id="id4" stringValue="SELECT qid FROM EDAComp Revision WHERE &quot;object_name&quot; = &quot;${object_name = }&quot; AND &quot;owning_user.user_id&quot; = &quot;${user_id = }&quot; AND &quot;fx8_Category&quot; = &quot;${fx8_Category = }&quot; AND &quot;fx8_DellSymbol&quot; = &quot;${fx8_DellSymbol = }&quot; AND &quot;fx8_FootprintCategory&quot; = &quot;${fx8_FootprintCategory = }&quot; AND &quot;fx8_StandardPN&quot; = &quot;${HHPN = }&quot; AND &quot;fx8_ItemType&quot; = &quot;${fx8_ItemType = }&quot; AND &quot;fx8_MfrPN&quot; = &quot;${fx8_MfrPN = }&quot; AND &quot;fx8_PrjName&quot; = &quot;${fx8_PrjName = }&quot; AND &quot;fx8_StandardPN&quot; = &quot;${StandardPN = }&quot; AND &quot;fx8_Symbol&quot; = &quot;${fx8_Symbol = }&quot; AND &quot;creation_date&quot; &gt;= &quot;${创建时间早于 = }&quot; AND &quot;creation_date&quot; &lt;= &quot;${创建时间晚于 = }&quot;"></plmxml_bus:QueryClause></plmxml_bus:SavedQueryDef>
      <plmxml_bus:Text id="id2" primary="en-us"></plmxml_bus:Text>
      <plmxml_bus:Text id="id3" primary="en-us"></plmxml_bus:Text></plmxml_bus:PLMXMLBusinessTypes>

      修改过的查询文件导入系统后不再有乱码情况



      图4:修改过的查询文件导入系统后不再有乱码情况

      总结:

          将导在配置查询时候“用户条目本地化关键字”需要避免使用中文,以避免导出查询是中文乱码问题,如果确实需要是客制化中文,则可以通过本地化条目来实现中文查询条件。自定义本地化条目参照Teamcenter多语言环境中二次开发使用查询的技巧中方案3



      为您推荐

      Teamcenter多语言环境中二次开发使用查询的技巧







      文章转载自PLM有个号,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论