2013 年 6 月の履歴(もしくは日誌)


2013 年 6 月

6 月 15 日

XSLT で困った

自分の web サイトを更新するためのスクリプトを走らせたらエラーが出ました.RDF ファイルを XSLT で XHTML に変換しようとしたらエラー.この更新用スクリプトは久しぶりに使ったので,いったいどうしてエラーなのかさっぱり.

エラーはこんな感じ.

$ xsltproc hoge.xsl fuga.rdf
encoding error : output conversion failed due to conv error, bytes 0x00 0x3F 0x78 0x6D
I/O error : encoder error

xsltproc は OS X 10.8.4 の /usr/bin/xsltproc です.
試しに古い MacBook の OS X 10.5.8 の /usr/bin/xsltproc を試してみたらエラーが出ませんでした.つまりぼくが書いたスタイルシートや生成された RDF に問題がある事よりも,xsltproc のバージョン依存の問題がある事が疑わしい.

で,「encoding error」ってなんだろう?
いろいろ試してみたら <xsl:output encoding="ISO-2022-JP" /> の encoding="ISO-2022-JP" を削るとエラーにならない事がわかりました.つまり,ぼくの Web サイトは基本的に JIS コードなんですが,xsltproc で JIS コード出力に問題があるみたい.仕方ないから UTF-8 で出力するようにしました.やれやれ.

http://onohiroki.cycling.jp/tb/tb.cgi/weblog_d20130615n1 TrackBack