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ランキング
-
ユーザー登録型のサイトを作成...
-
Perlで特定文字列から特定文字...
-
ファイルから読込んだ文字列か...
-
python renameについて
-
FindFirstFileとFindNextFileで...
-
awkスクリプトでダブルクォーテ...
-
VBAでCSVファイルの特定行を書...
-
batファイルでrenameができませ...
-
VBAでCSVファイルを途中行まで...
-
Perlでのファイル出力における...
-
ListBoxのデータを高速でファイ...
-
fgets で値が取得できない
-
sprintfについて
-
Pythonでegrep機能をつかいたい
-
csvファイルの横方向への改行に...
-
openした後、closeしないでプロ...
-
ReadLineでの読み出し行を指定する
-
htaccessで特定のディレクトリ...
-
perlをwindows環境でshift-jis...
-
バッチファイルの作り方(CSV→...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Perlで特定文字列から特定文字...
-
requireで同じライブラリを複数...
-
RSS自動生成で文字化け
-
HTML表示での実行でファイルが...
-
ユーザー登録型のサイトを作成...
-
perlのエディタでおすすめを教...
-
ファイルロックの仕方
-
ファイルアップロード時の経過表示
-
ファイルから読込んだ文字列か...
-
VBAでCSVファイルを途中行まで...
-
awkスクリプトでダブルクォーテ...
-
VBAでCSVファイルの特定行を書...
-
バッチファイルの作り方(CSV→...
-
openした後、closeしないでプロ...
-
ExcelをCSV書き出す場合のシー...
-
batファイルでrenameができませ...
-
エクセルVBA コードが同じでも...
-
window.open でのファイル指定方法
-
VBAで巨大なファイルの途中から...
-
DOSコマンドで、標準出力を出力...
おすすめ情報