Enterprise: リクエストキューのタイムアウトページに指定するHTMLの日本語が文字化けする

ColdFusion Entperise 版では、キューに格納された実行待ちのリクエストをタイムアウトさせることができる「キューのタイムアウト設定」が用意されています(ColdFusion Administrator の [サーバーの設定 > リクエストの調整]ページ内)。

この「キューのタイムアウト設定」では、『キューで実行待ちのリクエストのタイムアウト時間』のほかに、『リクエストキューのタイムアウトページ』でリクエストが実行されずにタイムアウトした場合にブラウザで表示するHTMLページを指定できますが、このHTMLページに日本語を使用している場合、その日本語が文字化けを起こします。

これは、ColdFusion内部で「キューのタイムアウト」の発生時に対象となるHTMLページをISO-8859-1(US-ASCII) エンコードに変換してしまうためです。このエンコード方式を変更する方法は用意されていないため、エラーのHTMLページに日本語などを使用する場合は、事前に文字をHTMLエンコードを行ってください。

例えば、エラーのHTMLページに「テスト」という文字を表示したい場合は、テスト とページに指定し、そのファイルをUTF-8で保存してください。

例:

<html>
<head>
  <title>&#x30c6;&#x30b9;&#x30c8;</title>
</head>
<body>
...
&#x30c6;&#x30b9;&#x30c8;
...
</body>
</html>

エンコードしたい日本語を調べる方法については、Webの一般ユーザーの変換サービスページを利用したり、ColdFusionで EncodeForHTML関数を使用したテストページを作成してください。

例:
<cfoutput>#EncodeForHTML("テスト")#</cfoutput>⇒&#x30c6;&#x30b9;&#x30c8;

【補足】
「リクエストキューのタイムアウトページ」は HTMLページのみ指定できます。.cfmページは指定できません。そのため、ページ中にCFMLを使用して動的処理を行うこともできません。
 


記事公開日:2020年07月06日
最終更新日:2020年07月06日


x

Sample Modal Window

This is just a sample…

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent suscipit iaculis libero sed tristique. Quisque mollis dolor non tellus placerat vitae sodales lectus porta. Curabitur ut suscipit tellus. Maecenas rhoncus, ante vitae vehicula vestibulum, metus sapien dapibus tellus, et mattis dolor neque vitae nisl. Nullam eleifend ultrices ipsum eget pretium. Curabitur semper metus ut ante adipiscing nec volutpat sem rutrum. Nullam a nisi lacus, non interdum ante. Vivamus ante augue, commodo vel egestas sed, pharetra nec dui. Quisque sed tellus felis. Donec ipsum mauris, sagittis eu accumsan in, aliquam non ipsum.

Vestibulum tempor nunc nec felis scelerisque eget elementum erat dignissim. Ut vel ipsum mollis orci venenatis luctus. Aenean vehicula quam vel quam porttitor ac iaculis elit pulvinar. Proin consequat, ipsum eu venenatis semper, justo turpis posuere tortor, ac placerat metus nisl et lectus. Nulla cursus dui id nunc ullamcorper sed semper nisl lobortis. Aliquam erat volutpat. Phasellus arcu ante, imperdiet in ornare sed, laoreet eu massa.