2012-05-10 6 views
0

私は国際的なドメインを扱うことができるようにフォームを書き直していますが、それを始める前に私はIDNを処理する能力をテストすると思っていました。国際的なドメインを扱うJava IDNのColdfusion

私の考えは、誰かが以下のようなドメインを入力した場合、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> 

しかし、これを実行すると、私はエラーを取得する:

A prohibited code point was found in the inputhttp://æ ̧...å�žå¤§å¦

これは.toAscii行で発生します。私は何を逃したのですか?

+0

は、これらの高い文字セットを禁止して事実上のASCIIではないでしょうか? "toUtf8()"メソッドなどはありませんか? –

+0

あなたは何を言っているのか分かりません。 ASCIIに変換する前に文字列を変換する必要があるとお考えですか? – Jarede

+0

http://stackoverflow.com/questions/1510794/whats-the-proper-technical-term-for-high-ascii-characters – Sharondio

答えて

0

私のページの上部に<cfprocessingdirective pageencoding="utf-8">を追加しました。これは現在、Java IDNを使用して中国語を正しくエンコードしてデコードしています。

私はここにコメント欄でこの解決策を見つけた:

http://www.bennadel.com/blog/1155-Cleaning-High-Ascii-Values-For-Web-Safeness-In-ColdFusion.htm

+0

私はBen nadelほど賢いと思うよ。なぜ私はそれを考えなかったのですか? –

関連する問題