Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
tanigonの日記
[go: Go Back, main page]

Hatena::Diarytri はてなブックマーク はてなフォトライフ
    
はてな
 ようこそゲストさん  最新の日記 ユーザー登録 ログイン ヘルプ

tanigonの日記

PC | 音楽 | システム開発 | Java | | 運動 | プチグルメ | | Seasar projectなのはこちら

2005-03-02

[] CruiseControlで日本語が化ける場合

CruiseControlのWebインタフェースを使っていると、日本語がとにかく化ける。これは、UTF-8XML を XSL で HTMLに変換するとき、xsl:outputでencodingを指定していないせいで、htmlutf-8になっているのに、そのファイルストリームに流し込むときに''FileReaderを使っている''からだ。

対処方法は2点ある。

1つは .xsl ファイルを編集して xsl:outputにencoding="(適当にどうぞ)" を追加して、main.jspの content-typeに charset とか付ける方法。

もう1つは FileReaderを使っている XSLTag.java などを''new InputStreamReader( new FileInputStream(file), "utf-8" )''とかする方法。

対処方法は実に簡単なものなので拍子抜けしてしまうが、やはり''FileReaderは世の中にエンコーディング問題をばらまくアンチパターンだ''という気がする。パターン以前の問題か*1

*1:file.encodingプロパティが1.4.2以降廃止されてるのも苦しい

# kakutani 『そこでXFDですよ!』

# tanigon 『そうか!! そもそもWebインタフェースではなくXFDで…marsさんのとこに書いてあった LEGOをXFDにするというのも面白そうなんですが...』