XML::DOC + CGI + Encoding で cgi script

以前も少し書きましたが、追加情報です。いままではCGI::testメソッドを利用していたので、問題なかったのですが、CGI::testareメソッドを使用したら問題が生じました。Formからtextarea経由で、複数行にわたるテキストを受付け、Encodingで適切なコードに変換した後XML::DOMのtext nodeを作成します。これをファイルに書き出す訳ですが、printtofileすると、上手くいかないので、encodingを指定しながら独自にファイルをオープンし、タグを書いていきます。

問題1

ファイルにテキストノードの内容を書き出すとCRコードが入ってしまいます。emacsでみてあげると^Mという文字が挿入されています。

問題2

複数行にわたるテキストノードをXML::DOMで読み込むとなぜか文字化けします。改行がなければ問題なく取り扱えているのに。。。。。


そんな訳でテキストノードを作る前に、リターンコードを別の文字列に、CRコードは取り除いてしまいます。とりあえず今のところはこれで上手くいっているので、よしとしています。。。