ColdFusion chr()不适用于高ascii数字

时间:2013-05-03 21:35:55

标签: coldfusion ascii coldfusion-8 cfml

我试图在我的ColdFusion程序中使用分号。它似乎是ascii 155.函数Chr()只解释最多127的值,尽管文档说不然。我发现了一个线索,我可能需要在ColdFusion管理员中启用高ascii字符,但我找不到这样做的地方。这段代码有效:

<cfset x = Chr(127)>
<cfoutput>  this is what you get with #x# </cfoutput>

我得到一个漂亮的盒子。但这只返回一个空白:

<cfset x = Chr(155)>
<cfoutput>  this is what you get with #x# </cfoutput>

如何让Chr()使用更高的数字?

2 个答案:

答案 0 :(得分:2)

“分号”为¢chr(162)(工作正常)或&cent;为HTML实体。

如果您需要符号,请使用chr(8250)&rsaquo;

答案 1 :(得分:2)

看起来像我们都习惯的标准美国ascii chr,而coldfusion chr编号不匹配。 根据Livedocs(第8版)

  

ColdFusion MX:更改了Unicode支持:ColdFusion支持Unicode字符的Java UCS-2表示,最大值为65535.(早期版本支持1-255。)

如果你看这里,这个博客显示了一些CF和HTML等价...所以你可以更容易地找到它们中的一些。 cf and html entities

出于兴趣,我做了一个简单的循环,并且认为我会仔细研究它们,并且有很多字符......困难的部分是找到合适的字符。 如另一个答案所述,162是一分钱,但这可能有助于解释原因。

<cfoutput>
<cfloop index="i" from="1" to="10000">
<pre>Chr #i# = #chr(i)#</pre>
</cfloop>
</cfoutput>

Java UCS-2有很多奇怪的字符,你可以在这里看到。

一些示例输出: Chr 2922 =୪ Chr 2923 =୫ Chr 2924 =୬ Chr 2925 =୭ Chr 2926 =୮ Chr 2927 =୯ Chr 2928 =୰ Chr 2929 =ୱ Chr 3207 =ಇ Chr 3208 =ಈ Chr 3209 =ಉ Chr 3210 =ಊ Chr 3211 =ಋ Chr 3212 =ಌ