先日の座談会 でちらっとTrackbackの文字コードの指定方法について話が出ました。
その時、送るときはUTF-8で統一しませんか?という案が出ました。参加したメンバーが軒並みすごい方々だったので、この案を実装しても文句出ないかなと思い、早速実装した日本語化パッチをアップしました。
早速といいながら、座談会から既に1週間経ってしまいましたが。
ということで、Movable TypeのTrackbackはUTF-8で送るのを最終案としたいところ。賛同が得られたらウレシイです。
ソース読めばわかんだろと思って書かなかったけど、仕様はこんな感じ。
◆送信時
・文字コードはUTF-8で送信
・Content Bodyに「charset=utf-8」を付与
◆受信時
・charsetパラメータがあればそれを信用
・charsetパラメータが無ければタイトル等から文字コードを推測
ということで、送信時にUTF-8にするようになっただけで、他のコードで送られても問題ないし、送られる側のサイトで文字コード判別の助けになるようにcharsetパラメータも送ってるし、いろいろと考えています。
RubyでUTF-8の扱いが面倒とか言われちゃうと、すみませんとしか言いようがないですが。
内容はこちら。
lib/MT/App/Trackback.pm
120行目以降を書き換え
my($title, $excerpt, $url, $blog_name) = map scalar $q->param($_),
qw( title excerpt url blog_name);
no_utf8($tb_id, $title, $excerpt, $url, $blog_name);
↓
my($title, $excerpt, $url, $blog_name, $icode ) = map scalar $q->param($_),
qw( title excerpt url blog_name charset );
no_utf8($tb_id, $title, $excerpt, $url, $blog_name);
require Jcode;
my $charset = {'Shift_JIS'=>'sjis','ISO-2022-JP'=>'jis','EUC-JP'=>'euc',
'UTF-8'=>'utf8'}->{$app->{cfg}->PublishCharset} || 'utf8';
my $incoming = {'shift_jis'=>'sjis','iso-2022-jp'=>'jis','euc-jp'=>'euc',
'utf-8'=>'utf8'}->{lc($icode)} || Jcode::getcode($excerpt . $title . $blog_name);
$title = Jcode->new($title, $incoming)->$charset();
$excerpt = Jcode->new($excerpt, $incoming)->$charset();
$blog_name = Jcode->new($blog_name, $incoming)->$charset();
173行目移行を書き換え
if (length($excerpt) > 255) {
$excerpt = substr($excerpt, 0, 252) . '...';
}
↓
if (length($excerpt) > 255) {
$excerpt = substr(Jcode->new($excerpt, $charset)->euc(), 0, 252);
if ($excerpt =~ /\x8F$/ or $excerpt =~ tr/\x8E\xA1-\xFE// % 2) {
chop $excerpt;
}
$excerpt = Jcode->new($excerpt . '...', 'euc')->$charset();
}
lib/MT.pm
560行目以降を書き換え
## Build query string to be sent on each ping.
my @qs;
push @qs, 'title=' . MT::Util::encode_url($entry->title);
push @qs, 'url=' . MT::Util::encode_url($entry->permalink);
push @qs, 'excerpt=' . MT::Util::encode_url($entry->get_excerpt);
push @qs, 'blog_name=' . MT::Util::encode_url($blog->name);
my $qs = join '&', @qs;
↓
## Build query string to be sent on each ping.
require Jcode;
my $charset = {'Shift_JIS'=>'sjis','ISO-2022-JP'=>'jis','EUC-JP'=>'euc',
'UTF-8'=>'utf8'}->{$mt->{cfg}->PublishCharset} || 'utf8';
my @qs;
push @qs, 'title=' . MT::Util::encode_url(Jcode->new($entry->title, $charset)->utf8 );
push @qs, 'url=' . MT::Util::encode_url(Jcode->new($entry->permalink, $charset)->utf8 );
push @qs, 'excerpt=' . MT::Util::encode_url(Jcode->new($entry->get_excerpt, $charset)->utf8 );
push @qs, 'blog_name=' . MT::Util::encode_url(Jcode->new($blog->name, $charset)->utf8 );
push @qs, 'charset=utf-8';
my $qs = join '&', @qs;
トラックバック
Milano::Monolog: Trackbackの文字コード指定方法最終(予定) 先日の座談会でちらっとTrackbackの文字コードの指定方法について話が出ました。 その時、送るときはUTF-8で統一しませんか?という案が出ました。参加したメンバーが軒並みすごい方々だったので、この案を実装...
Trackback - blog.bulknews.net
2003年9月 2日 06:20
今日の「やっぱイジメたいです.とことんまで.」(2003-09-02) 今の実装では受ける時はcharsetパラメタ無視してUconvやNKFの推測におまかせだけど,ちゃんとcharset見るようにした方がいいかも.どちらにしろ,MTからTrackback受けるにはUconv必須ってことになりそう.ただで...
ミラノさんのところや、ミヤガワさんところでも話題になっていますが、TrackBack で送信するコードを UTF-8 化しようという話について。 大体わたしのいいたいこともミヤガワさんが書かれていますが、ちょっと追加。 以前、わたしのところに、台湾の方からトラックバックもら...
blog.bulknews.net: Trackback UTF-8を扱えるツール(A)は、 * 送信はUTF-8 とし、charset=utf-8 をつけて送信 * 受信時は charset をみて判断。なければ UTF-8 と判断(または自動判別も可) UTF-8を扱えないツール(B)は、 * 送信はcharset=euc-jp などをつけて送信 * 受信はch...
先日行われた座談会でMovableTypeのTrackBack文字コードについての話題が出たようで
それを受けてのパッチが新たに作成されたとのことです。
詳しくは上記milanoさんのentryを見ていただくとして、
それに関連するentryをいくつかあげておきます。
先日来、ウェブログのエライ人たち(誰)のあいだで、Trackbackの文字コードをUTF-8に統一しようというお話があったのは、そこかしこで目にしていたのですが。今日、(めったにやらない)Trackback Pingを送信した際、先方のblogに文字化けを発生させてしまい、ううむこりゃ...
以前、OpenSector.orgにトラックバックを打って文字化けし、その後直してもらったという経験をして、その後はトラックバックを打つとき、相手方のサイトの文字コードをチェックして、それにあわせたコードで打って文字化けしないようにしている。
しかしこれはちょっと面...
TrackBackの文字が化ける件、みらのさんのTrackbackの文字コード指定方法最終(予定)を参考にいじってみました。 コメントもすべてUTF-8で表示されてくれれば問題解決なのですが。 これまであまりにも問題なく動いて拍子抜けしていたのですが、初めてソースに手を加えたら、...
Milano::Monolog: Trackbackの文字コード指定方法最終(予定)Movable TypeのTrackbackはUTF-8で送るのを最終案としたいところ。賛同が得られたらウレシイです。...
TrackBackの文字コード Milano Monolog Trackbackの文字コード指定方法最終(予定) blog.bulknews.net Trackback SHOULD be in UTF-8 thebadtiming.com Blog Trackback の文字コード 今日の「やっぱイジメたいです.とことんまで.」 Trackbackの文字コード指...
Weblogの先輩たちに習いTrackback送信時の文字コードをUTF-8に統一しました。いまいち使わないTrackBackだけどとりあえずみようみまねでやってみました。 Milano::Monolog: Trackbackの文字コード指定方法最終(予定)...
MOVABLE TYPEのカスタマイズ第二弾です。 numalog: MTいじり まだトラックバックを有効にしないで使用していますが、トラックバック着信時の運用を楽にしたかったので、このカスタマイズを取り込んでおきます。 Milano::Monolog: Trackbackの文字コード指定方法最終(予定) ...
Moveabletypeがver.2.65にアップデートされていたので2.64からアップデート。セキュリティ関連対策が主な更新内容だが、ATOM syndicationにも対応したのこと。
.Text 0.95 のトラックバックを utf-8 で送るように修正しました。
トラックバックの実装には、大きく2つの問題がある。1つはトラックバックを受けるメカニズムの信頼性で、これは何もトラックバックに限った話ではなく、インターネット...
ウチのシステムのtrackback機構も、とりあえずこの仕様に準じて見ようと思いました。仕様が固まっていれば、作りやすいんですけどね(笑。
文字コード、実際には 「トラックバックを送るときは UTF-8 で統一しませんか?」 という話なのですが、手動トラックバック を UTF-8 で今のところ送っているんですけどね。...
續・L冷!潟ヮ痺俄√M溷9帚 ・∴?・娯"遺"・ャ・・ヰ・・!・r・≫!銀 ・″・・UTF-8 ・х輝筝・冷 障○・凪 玖[溪・・・>・・ァ宴≦瘁・>メ吮 娯√㈲・補"遺"・ャ・・ヰ・・!・・・UTF-8 ・т・・・>瘁凪!榊≫ c<瘁・!銀!凪 с☆・鯛 ・∞ム・..
webのエンコーディングについて皆さん同じ悩みを持っているようで。 UTF-8がいいのだろうか・・・ Trackbackの文字化け対策を発見。 早速実装してみる。次のTrackbackが楽しみ。 追記: おのさんからTrackbackがきた。 おのさんもJIS→UTF-8対策を行ったようでこっちのUTF...
Wiki SCOOP - PukiWiki/TrackBack 0.1
2004年6月18日 23:04
Wiki SCOOP 暫定開業 雑誌の通り軽量サーバー使用で軽いが信頼でけん まあ暇見て本格運用するべ PHPは懲りている RSSはまったく動かん XML ページを表示できません XSL スタイル シートを使用した XML 入力は表示できません。エラーを訂正してください。 [更新...
Wiki SCOOP - PukiWiki/TrackBack 0.1
2004年6月18日 23:04
Wiki SCOOP 暫定開業 雑誌の通り軽量サーバー使用で軽いが信頼でけん まあ暇見て本格運用するべ PHPは懲りている RSSはまったく動かん XML ページを表示できません XSL スタイル シートを使用した XML 入力は表示できません。エラーを訂正してください。 [更新...
Wiki YUMA - PukiWiki/TrackBack 0.1
2004年6月23日 16:49
Wiki SCOOP 【Wiki】やっと少しだけ、お仕事がやりやすくなったよ、暫定スタートでつ 【本日の更新】 Wiki YUMA 【茨城岩井市】女性置き去り事件 Virus 新潟柏崎冷蔵庫殺人事件容疑者逮捕 雑誌の通り軽量サーバー使用で軽いが信頼でけん まあ暇見て本格運用する...
Wiki YUMA - PukiWiki/TrackBack 0.1
2004年6月23日 16:49
Wiki SCOOP 【Wiki】やっと少しだけ、お仕事がやりやすくなったよ、暫定スタートでつ 【本日の更新】 Wiki YUMA 【茨城岩井市】女性置き去り事件 Virus 新潟柏崎冷蔵庫殺人事件容疑者逮捕 雑誌の通り軽量サーバー使用で軽いが信頼でけん まあ暇見て本格運用する...
sairix製のTrackBackシステム。"aspTrackBack"についてのIndexページです。
aspTrackBackはIIS上のASP(VBScript)で動作します。別のコンポーネントのインストールを要求しません。
まだ、テスト中なのでソースは公開してません。機能不全を起こすことがあります。
...
PHP系blogツール スレッドからのpingです。
ようやく直しました。
私の場合はトラックバックを受けた場合は特に問題は無かったの...
〓〓〓遵d〓〓 - 醇dA〓遵ョ醇縁・遵・・
2004年9月11日 09:18
遵ネ遵シ遵e遵ェ醇T醇D遵H醇f醇d醇h醇N醇h遵ゥ遵H遵ョ遵・遵d醇Kb遵シ醇D遵ェ遵e遵e〓〓醇N醇h遵ゥ〓〓遵ゥ醇Z遵Hc...
Apache - PukiWiki/TrackBack 0.1
2004年9月29日 02:51
Wiki SCOOP お品書き お品書き Apache入門編 WindowsでApacheを 一部サーバーでApacheを採用とな Apache...
Apache/p2 - PukiWiki/TrackBack 0.1
2004年9月29日 03:05
PrevApache HomeUp 添付File 問題 Apache の LimitRequestBody で引っ掛かっている可能性が高いです。R...
Apache/p03 - PukiWiki/TrackBack 0.1
2004年9月29日 03:13
#(Apache) 「画像の盗用」を防ぐ この例は、別のサーバにいる人が、あなたのサーバにある画像を inline 画像として使 用することを防ぎます。 こ...
トラックバック - nosonoso
2004年9月30日 23:04
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓c〓(属〓〓〓~〓〓〓〓〓br />
〓c〓〓〓〓〓〓〓茯帥〓〓〓〓〓障〓〓〓〓
...
exciteにtrackbackしたら文字化けしてしまいました。 xrea, l...
このブログで使っている文字コードはEUC-JP、一方のExciteブログはUTF-8。
Zerosylphy DiaryがMovable Type 3.15-jaで運用...
トラックバックを素直にShift-JISからUTF-8送るとしっかり文字化けしてました。
お花見ボケでしばらく更新が滞って久々にログインしようとしたら、げぇっ!ログイン...
MTブログからExciteブログにトラックバックを送ると文字コードの違いで文字化けしてします。UTF-8でトラックバックを送るように改良しなければいけないみたい...
特定のサイトにトラックバックをすると文字化けすることがわかりましたんで 修正してみました・・・。 原因はうちが「EUC-JP」でそのサイトは(exblog)UT...
最近わかった事 - ぼっかつ かつどー
2005年5月25日 00:23
もうこうなれば、3回目もキチンと更新 最近ブログやっててわかったことなんですが どうやら、ウチのブログはトラックバックすると文字化け起こすみたいです おそらく、...
@芨††茀†P舁†舃††X退†††Bċv††††O茀†鎂†悤舁†芽苧††††AI莍茀侃C莓...
@芨††茀†P舁†舃††X退†††Bċv††††O茀†鎂†悤舁†芽苧††††AI莍茀侃C莓...
なんか最近、aspTrackBackとかいうキーワードで検索する人がいたのでなんかあったのかと思ったら、読者の方からメールで受信部分を見たいよと要望が来た...
〓〓〓〓域〓腓障〓莅〓〓〓〓〓〓〓〓莊〓〓〓〓〓〓吾〓〓画〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓茵〓〓〓〓〓〓〓〓〓〓〓...
KOW
こんにちは。
上記の通り、変更してみたつもりなのですが、以下のmt.cgiにアクセスすると以下のエラーが出てしまいました。文法がわからないものでどう対処していいか分かりません。すみませんが、ご教授願えますか?
Got an error: Global symbol "$app" requires explicit package name at lib/MT.pm line 563. Compilation failed in require at lib/MT/App.pm line 14. BEGIN failed--compilation aborted at lib/MT/App.pm line 14. Compilation failed in require at lib/MT/App/CMS.pm line 14. BEGIN failed--compilation aborted at lib/MT/App/CMS.pm line 14. Compilation failed in require at mt.cgi line 21.
KOW
度々すみません。↑のエラーを読むと、なんか$appの宣言が必要って読めるんですが違いますかね?
milano
>KOWさん
すみません、MT.pm は、
$app->{cfg}->PublishCharset
ではなく、
$mt->{cfg}->PublishCharset
でした。
KOW
早速の回答ありがとうございます。
直りました。ありがとうございます。
かなめ
トラックバック先に残る私のurlの......./~kaname/blog/の~kの部分が変な漢字に化けるんですが解決方法ってあるんでしょうか?
oyama
はじめまして。
上記のMT.pmの変更と
http://rebecca.ac/milano/mt/archives/000063.html
の1.で、エキサイトはトラックバックの送受信とも文字化け解消しました。
ただ今度は、エキサイト以外のブログから受信したトラックバックが文字化けするようになってしまいました(送信した方は問題ないです)。
ただ上記のTrackback.pmの変更を行うと、エラーになってしまうのです。
元のソースを↓----------------------------------------------
my($title, $excerpt, $url, $blog_name, $enc) = map scalar $q->param($_),
qw( title excerpt url blog_name charset);
no_utf8($tb_id, $title, $excerpt, $url, $blog_name);
----------------------------------------------
上記ソースに変更し、PublishCharset} || 'utf8';
のところだけ'euc'に変えました(うちのサーバーが文字コードがEUC-JPで、どうしてもEUCにしなければならないので)。
素人ですみません。もしお気づきの点があれば教えていただけると幸いです。
よろしくお願いします。
匿名
なぜ,"encoding" ではなく,"charset" なのでしょう。
その点理解に苦しみます。