Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Coldfusion 11和Coldfusion 2016之间的编码问题_Coldfusion - Fatal编程技术网

Coldfusion 11和Coldfusion 2016之间的编码问题

Coldfusion 11和Coldfusion 2016之间的编码问题,coldfusion,Coldfusion,我目前使用ColdFusion 11作为开发的本地服务器 我有一个用ColdFusion序列化的JSON字符串。在字符串中,我必须在对象“Payment_form”中插入代码“99”。响应中需要的Api告诉我Payment_form对象是字符串 了解使用JSON字符串和数字表示的ColdFusion序列化的问题,请查看这里的StackOverflow,并通过放置“chr(2)”找到解决方案 问题解决了。。。。但只有在ColdFusion 11中。当我将代码上传到ColdFusion主机(host

我目前使用ColdFusion 11作为开发的本地服务器

我有一个用ColdFusion序列化的JSON字符串。在字符串中,我必须在对象“Payment_form”中插入代码“99”。响应中需要的Api告诉我Payment_form对象是字符串

了解使用JSON字符串和数字表示的ColdFusion序列化的问题,请查看这里的StackOverflow,并通过放置“chr(2)”找到解决方案

问题解决了。。。。但只有在ColdFusion 11中。当我将代码上传到ColdFusion主机(hostek.com/CF2016)时,它停止工作,因为chr(2)返回值“/u000299”,因此API会以错误响应

我假设ColdFusion 2016更改了对chr()的处理,但在两个版本的文档中,对该函数的处理没有任何更改

似乎CF/2016正在根据ASCII表进行更改(转义Unicode)

那么?。有人知道怎么解决这个问题吗

  • 这与托管服务有关吗
  • Hostek.com是否有其他编码器连接到我的本地服务器
我希望有人对此有一些建议。多谢各位

<cfset requestData = {"customer": "#customer#"
        , "items":#empStruct#
        , "payment_form":"#chr(2)#99"
        , "payment_method": "#payment_method#"
        , "use": "#use#"
        , "folio_number": "#folio_number#"
        , "series": "#series#"
    }>
与ColdFusion 2016系列化退出链(ColdFusion Hosting Hostek.com)


TL;博士

与其尝试“修复修复”,不如尝试使用


在开发中使用与Prod不同的版本总是会导致流泪。。。看一看。使用不同版本的CF非常容易

chr(2)返回值“/u000299”

无论如何。。serializeJSON()函数是将
chr(2)
转换为
/u0002
的函数。然而,这似乎不是新的行为。与其尝试“修复修复”,不如尝试使用以下选项之一:

Adobe ColdFusion(2016版)更新2允许您指定 结构中键的数据类型信息。这就是所谓的元数据

payment\u form
值显式声明为字符串,CF将其括在引号中,而不是猜测它是一个数字

输入:

input = {"payment_form":"99"};
input.setMetadata( {payment_form: {type: "string"}} );
output = serializeJSON( input );
writeDump( output );
{"payment_form":"99"}
结果:

input = {"payment_form":"99"};
input.setMetadata( {payment_form: {type: "string"}} );
output = serializeJSON( input );
writeDump( output );
{"payment_form":"99"}

此外,如果您是从查询对象构建此查询,CF2016还添加了两个新的应用程序设置,可以覆盖序列化查询的古怪默认设置,使其更易于操作。

谢谢!!我把你的例子应用到我的json链上,效果非常好!感谢RegardsGlad提供的提示:-)JSON处理仍然存在一些问题,但在CF2016+中要好得多。
{"payment_form":"99"}