User:
Pass:
Keep:   
重要なお知らせ

flagflag

2006-01-02
WordPress 0.5.0RC Finalを公開しました。
WordPress 0.5.0
2006-01-02
WordPress 0.6.0 Alphalを公開しました。
Download
Powered by Google



Powered by XOOPS 2.0.13a JP
PukiWikiMod 1.5.1
WordPress Module 0.6.0 Alpha

2004年6月20日(日)

トラックバックの文字化け対策

カテゴリー: - のぶのぶ @ 12時26分14秒

日本語の文字コードの関係でトラックバックの文字化けってのがいろいろな
ブログツールの開発者を悩ましているが、試行錯誤の結果WordPressでは、
以下のような対策を考えた。

トラックバック送信時
1.charsetパラメータの付加
 日本語圏では、charsetをトラックバックPOSTのパラメータに付加する事が
 デファクトとなっているようなので、送信する文字コードを指定する。
2.UTF-8での送信オプションの追加
 exciteのブログなどではUTF-8以外の文字コードによるトラックバックを
 受け付けてくれないので、送信時にUTF-8によるトラックバックを可能にする
 オプションを追加
3.Bookmarkletによる投稿時の、ターゲットの文字コード自動判定
 Bookmarkletによる投稿時には、一度トラックバックURLの自動取得を目的として
 ターゲットのページを読み込むようにしているので、この際に文字コードを
 判定して、その文字コードによってトラックバックを送信する。

トラックバック受信時
基本的には以下の2つの方法で受信したトラックバックの文字コードを判定する。
1.charsetパラメータによる文字コード判定
2.mb_detect_encoding関数による文字コード判定
但し、PHPではphp.iniや.htaccess等によりmbstringの設定の違いによって、
charsetパラメータを信用する事がかえって文字化けの原因となる事が
わかってきた。
というのは、設定によってはPHPの方で自動的にPOSTされた文字列の文字コードを
判定して、事前に文字コード変換されてしまうので、これにcharsetパラメータを
参照して文字コード変換すると2重に変換する事になって文字化けが発生してしまう。
特にphp.iniにて、

mbstring.http_input = auto
mbstring.encodi​ng_translation = On

等となっている場合には、この状況となる。
よって、受信時に既に変換済みかどうかを判定する必要が出てくる。
mb_http_input("P")という関数呼び出しによって、POST文字列をどういうcharsetとして
判断して変換したかという事が拾えるので、これらとphp.iniの設定内容を元に、
自動変換するかcharsetパラメータによる変換をするかを判定する事とした。


コメント

このコメントのRSS

TrackBack URL : http://www.kowa.org/modules/wordpress/archives/2004/06/20/224/trackback/

  1. 日記更新
    きこえる

    Comment by のぶのぶ — 2004年7月25日(日) @ 10時39分07秒

  2. テスト
    http://www.kowa​.org/modules/wo​rdpress/archive​s/2004/06/20/22​4/
    テストです。

    Trackback by M's_Bar — 2005年6月14日(火) @ 22時16分20秒

  3. この文字化け対策はありがたいです。

    Comment by 人材派遣労働者 — 2008年2月17日(日) @ 15時24分55秒

コメントの投稿

改行や段落は自動です
URLとメールアドレスは自動的にリンクされますので、<a>タグは不要です。
以下のHTMLタグが使用可能です。
<a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <br> <code> <em> <i> <strike> <strong>


:-D :-) :-( :-o :-? 8-) :lol: :-x :-P :oops: :cry: :evil: :roll: ;-) :pint: :hammer: :idea: ::ttt::

35 queries. 0.461 sec. - Mem:8631bytes
Powered by WordPress Module based on WordPress ME & WordPress

カレンダー
2004年 6月
« 5月   7月 »
 12345
6789101112
13141516171819
20212223242526
27282930  
投稿者別一覧
アーカイブ(月別)
カテゴリ一覧
ブログ内検索
 
Powered by XOOPS 2.0.13a JP