我正在重写我们的一个表单以便它可以处理国际域名,但在我开始之前,我认为我会测试处理IDN的能力。
我的想法是,如果有人进入以下域名:http://清华大学.cn我会将其存储为数据库中的punycode。考虑到这一点,我随后找到了Java IDN处理程序并编写了一些测试代码:
<cfset strUrl = "http://清华大学.cn" />
<cfoutput>
#strURL#
</cfoutput>
<!--- Create a Java URL. --->
<cfset jUrl = CreateObject( "java", "java.net.IDN" ).toAscii(strUrl) />
<cfoutput>
#jURL#
</cfoutput>
然而,在运行此操作时出现错误:
在输入中找到了一个禁止的代码点://æ̧...å žå¤§å|
这发生在.toAscii
行。我错过了什么?
答案 0 :(得分:0)
我在页面顶部添加了<cfprocessingdirective pageencoding="utf-8">
,现在使用Java IDN正确编码和解码中文。
我在评论部分找到了这个解决方案:
http://www.bennadel.com/blog/1155-Cleaning-High-Ascii-Values-For-Web-Safeness-In-ColdFusion.htm