【问题标题】:WDDX and Russian CharactersWDDX 和俄语字符
【发布时间】:2013-09-26 15:54:26
【问题描述】:

我希望通过 WDDX 将数据转换为 XML 输出

但是输出在俄语字符上崩溃 - 我被告知这会发生 - 但是如果有人知道,我愿意接受解决这个问题的方法?

代码如下:

<cfwddx action="cfml2wddx" input="#variables.csPages#" output="variables.xmlOutput" />
<cfset variables.xmlOutput = ReplaceNoCase(variables.xmlOutput, "&lt;", "<", "all")>
<cfset variables.xmlOutput = ReplaceNoCase(variables.xmlOutput, "&gt;", ">", "all")>
<cfset variables.xmlOutput = '<?xml version="1.0" encoding="UTF-8"?>' & variables.xmlOutput>
<cffile action="write" file="#variables.filePath#" output="#variables.xmlOutput#" charset="utf-8" />

错误如下: 应为字符串文字,但未找到开头的引号字符。错误处理资源'file:///D:/csroot/dev/c...

<var name='includePageTitle'><string>1</string></var><var name='IncludeRightColumn'><string...PAN>> </DIV> <char code="0a" /> 

【问题讨论】:

  • 你得到什么样的错误信息?
  • 您能给我们一个variables.csPages 的输入样本吗?不必是完整的,只要足以解决问题,以便我们可以模仿您在本地所做的事情。您能否也发布实际错误(行号、代码提取、堆栈跟踪顶部等)
  • 我会尝试两件事 1) 你能对数据做一个简单的 CFOUTPUT 吗? 2) 它是在它看到的第一个字符上崩溃还是只在某些字符上崩溃?

标签: xml coldfusion wddx


【解决方案1】:

将有问题的元素用作独立文件,例如russian.xml

<?xml version="1.0" encoding="UTF-16"?>
 <root>
  <var name='includePageTitle'><string>1</string></var><var name='IncludeRightColumn'><string...PAN>> </DIV> <char code="0a" />
 </root>

使用xmllint 查找错误:

xmllint russian.xml

russian.xml:3: 解析器错误:开始和结束标记不匹配:字符串...PAN 第 3 行和 DIV e'>1> ^ russian.xml:4:解析器错误:开始和结束标记不匹配:var 第 3 行和根 ^ russian.xml:5:解析器错误:标记根行 2 中的数据过早结束

参考文献

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-27
    • 2013-01-12
    • 2017-04-09
    相关资源
    最近更新 更多