いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

Tapestry奮闘記-0024 (文字化け対応)

アプリケーション仕様ファイルにて、プロパティ値

をともに、Shift_JISにしていたのですがこれでは、"〜"などが
文字化けしてしまいます。(Tapestry4.x系では、meta要素になります。)

UTF-8にするのが一番いい方法だとおもうのですが、それができない場合もあります。
その場合は、上記の2つの値を

にすると、化けずに表示されます。(Tapestryに限らず、Javaのサーバーサイド側では
よく知られていることですが)

ただ、文字コードWindows-31JというWindows系べったりのエンコーディングにしたので
MACではどうかと心配になりましたので、ちょっとだけ確認してみました。
結果は、

  • Windows(XP Pro)
  • Mac(OSのバージョンは確認してません・・すみません.恐らくかなり新しい奴だと思われます.)
    • Firefox(1.5.0.6)はOK
    • Safari(バージョンは多分最新)はOK

でした。

とりあえず、上記のように設定しておけば、"〜"(ニョロ)やはしご高とかがちゃんと表示されます。

追記:
ちなみに、〜などが化けてしまう状態になるのは、InsertやInsertTextなどのデータ表示系コンポーネントにて

<binding name="raw">ognl:true</binding>

としている場合に発生します。rawをfalse(デフォルト)にしている場合、ascii以外の文字はUNICODEエスケープされて
数値の文字参照(#xxxx)になります。この場合、手元の環境(J2SE 1.5, Tapestry 4.0)ではShift_JISでも化けませんでした。
rawをtrueにすると文字参照をしなくなり、そのままの文字列が表示されます。その場合に化けました。

この設定が正しいかどうか今一自信がありませんので、Tapestry文字コード周りに詳しい方がいらっしゃったら、
ご教授くださいませm(_ _)m