XML::RSSでRSSファイルを自動生成後のファイルが文字化けします。
webサーバーのキャラセットはコメントアウトしています。
キャラセットをAddDefaultCharset UTF-8にしても文字化けします。
スクリプトは下記でテストしています。
文字コードですが、UTF-8Nであれば、ファイルが生成されます。
生成されたファイルは文字化けしています。
ご教授お願いいたします。
#!/usr/bin/perl
use XML::RSS;
use strict;
my $rss = new XML::RSS(version => "1.0");
my $rssdata = [
{
title => "RSSテストその1",
link => "http://www.*******.***/rsstest",
description => "RSSテストその1です。",
dc => {
subject => "rsstest",
creator => "rsstest",
date => "2007-06-12T00:00:01+09:00",
}
},
];
$rss->channel(
title => "*******.***",
link => "http://www.*******.***",
description => "RSSテスト",
dc => {
creator => "rsstest",
date => "2007-06-12T00:00:00+09:00",
subject => "RSSのテストです",
},
);
foreach(@{$rssdata}){
$rss->add_item(
title => $_->{title},
link => $_->{link},
description => $_->{description},
dc => {
subject => $_->{dc}->{subject},
creator => $_->{dc}->{creator},
date => $_->{dc}->{date}
}
);
}
$rss->save("rss.xml");
No.1ベストアンサー
- 回答日時:
> 文字コードですが、UTF-8Nであれば、ファイルが生成されます。
UTF-8Nに変換している部分や指定してる部分がこのコードにはないみたいです。
ここからは勘ですが、XML::RSS には文字コードを自動でなんとかする機能はついてないはずなので、自分で制御をする必要があります。
1. XML::RSSに渡す文字コードに気を遣う
(このソースの例だと、perlのソースの文字コードがそれになりますね)
2. XML::RSSのコンストラクタに、encodingオプションを渡す
(生成されるRSSの<?xml version='1.0' encoding='XXXXX'?> に埋め込まれます)
use encoding "ecu-jp", STDOUT => "UTF-8";
上記を書き加えて、euc文字コード保存で解決しました。
回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- 教えて!goo RSSについて 1 2022/08/17 15:15
- メディア・マスコミ 西側メディア、読みづらい誤字。 1 2022/12/25 20:39
- メディア・マスコミ 労働者は代々木に集結してますか? 1 2022/05/01 11:51
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- 英語 何と言っているのですか? 9 2023/04/08 17:26
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- PHP 10文字以降は非表示にしたいんですが、文法が分かりませんアドバイスお願い致します 1 2022/07/10 20:37
- PHP phpのエラーについて 1 2022/06/27 22:30
- gooブログ gooブログについて 1 2022/05/09 09:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
openした後、closeしないでプロ...
-
アルファベットに付いて質問し...
-
perlをバージョンアップしたら...
-
Perl の外部モジュールの利用方法
-
PerlでUTF-8のファイルの文字列...
-
Perl 特定のフォルダ以外削除
-
perlでリテラル値はメモリにど...
-
perlプログラミング 空白行削除
-
perlのrequireの動き方について...
-
TeraPadエディターの操作方法に...
-
テキストファイルで提出とは?
-
perl 正規表現でエラー
-
perlで文字の置換又は抽出に関...
-
MediBang Paint Proについて
-
bashスクリプト
-
perlのプログラミング 部分入れ...
-
INDIRECT 横に再度抽出したい
-
Perl HTML解析
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Perlで特定文字列から特定文字...
-
requireで同じライブラリを複数...
-
unixでテキストファイルの編集...
-
perlのエディタでおすすめを教...
-
ファイルロックの仕方
-
perlのgrepで要素を返す値がお...
-
バッチファイルの作り方(CSV→...
-
awkスクリプトでダブルクォーテ...
-
VBAでCSVファイルの特定行を書...
-
DOSコマンドで、標準出力を出力...
-
ExcelをCSV書き出す場合のシー...
-
openした後、closeしないでプロ...
-
close()で例外が投げられる理由
-
batファイルでrenameができませ...
-
VBAでCSVファイルを途中行まで...
-
window.open でのファイル指定方法
-
VBAで巨大なファイルの途中から...
-
Perlで特定行から特定行までを...
-
ReadLineでの読み出し行を指定する
-
エクセルVBAで素数だけを出力す...
おすすめ情報