« 文字コードの変換をやってみた | メイン | sgi_fam »
内部はEUCでも、Webサイト側はUTFで構築...って出来ない?
2004年06月19日

文字コードをUTF-8からEUCへ変換したのはいいのですが...

ふと冷静になってみると...

「私、なんか逆のことやってない?」
ってキモチになりました。

確かにEUCになって、システムとシームレスになって便利になりました。
エディタで開いてもちゃんと見えるし、SQLでもちゃんと見えるし...
ちょっとした更新なら、DBを直接....たとえば
「テンプレートの更新、管理画面を介さなくても出来るようなツールを作ろうかな」
とか欲も出てきました。

でも....なぜ、せっかくUTF-8で表示していたものをEUCにしなくちゃならなかったのか??
世の中の流れは、Unicodeじゃないのかなぁ〜〜 っと...。

そもそも、
1.データベース内の文字コード
2.システムで使う文字コード(ソースコードの中の文字コード)
3.公開するときの文字コード

上記は別のものであっても、よいのでは??と思ったのですが....。

私の環境だたら、
データベースとソースはEUCで、
最終的に構築するサイトはUTF-8で....っというのがベストだと、、、

よく考えてみれば(考えてみなくても?)、そうすることがアタリマエのことのように思えてきました。

なぜ、全部同じじゃなくちゃいけないのか?

そりゃ、それがMTにとって都合がよいからだろうけれど。

...などではなくて、おそらく.....
まだ私の勉強が足りないせいなのだと思います。
(構築時に指定された文字コードに変換なんて、jcodeかけちぇばいいだけですから、簡単にできそうですもんね。)

MTをきちんと研究せずに「とりあえずモード」で使っているから。

もしかしたら、どこかに「設定ファイル」があるのかもしれません。
少し探してみます。

あとひとつ...
文字コードを変換する前、DBの中、UTF-8でした。
ほとんど日本語(2バイト文字)のここのコンテンツをUTF-8で保存するのにはギモンがありました。
たとえば、Perlのソースコードの中にポツポツと日本語(2バイト文字)が出てくるような場合はUTF-8が(格納サイズという意味で)効率が良いと思うのですが、エントリーの内容など、どうみてもほとんど日本語。
絶対UTF-16のほうが効率がいいですよね。

いろいろ考えると、やっぱり、文字コードの使い分けができるのがいちばんいいのかな?
っと思います。

<追記>
mt.cfgのPublishCharsetですが、コメント部に
#Use the PublishCharset option to determine the character encoding that is sent in the HTTP headers.
と書いてあるんです。
「出力するときにこの文字コードセットを使いますよ」
と言っている風に受け取れなくもないので、ちょっと期待して、UTF-8にしてみました。
『もしかしたら、内部のEUC-JPは勝手に判断してくれて、構築する際にUTFに変換してくれないかな』
という、あまい期待を抱いて..

結果は.....
mojibake.png
文字ばけちゃいました(泣)。

う〜ん、甘かったです。

PublishCharasetはEUC-JPに戻してやりなおし....。
どのようにすれば、うまくいくのだろう。

あと、UTFコードでのTrackBackを正常に受け取れるか気になったのでテストしてみました。

トラックバックpingの送信はHTMLを使って簡単にできます。
UTFコードでテスト用のサイトを作って、このエントリーへトラックバックしてみましたが正常に表示されているので、ひと安心です:-)
トラックバックテスト用サイトです。

投稿者 megu : 2004年06月19日 01:22

コメント

トラックバックテスト用のページ、なかなか興味深かったです。EUC-JP版とShift_JIS版を作って、UTF-8の私のサイトにTBするとやっぱり化けました。

私はUTF-8でいいんじゃないかと思っています。確かに出力の表現としては効率悪いですが、流通する形式としては悪くないのではないか、と。UTF-16だとmarkup部分も2バイト表現になってしまいますし、対応していないエディタでちょちょっと直すこともできません。

投稿者 (o) [TypeKey Profile Page] : 2004年06月19日 07:46

(o)さん、こんにちは。
(o)さんのサイトは日本語版ではなかったのですね?
トラックバックのテスト、意外に簡単にいってしまって自分でもびっくりです。
#スパムトラックバックなんて簡単に作れてしまいそうです。(やっちゃいけないですが、これから怖いですね。)

確かに...UTF-16は扱いにくいと思います。
用途によって使い分けられたらよいのですが、なかなかそれは難しそうだということがわかりました。

投稿者 megu [TypeKey Profile Page] : 2004年06月19日 22:50

>(o)さんのサイトは日本語版ではなかったのですね?

ええ、英語版でUTF-8にしています。テストで日本語版もインストールしていますけどね。そのうち英語版をハックして日本語版と同様にコード変換するようにしようと思います、Encode.pmを使って。

スパムトラックバックは確かに問題です。不愉快なスパムサイトにどんどんリンクを張ってしまうことになりますからね。トラックバックでDoS攻撃されるのも困りますし…。

MT3ではコメントを承認制に設定できますが、トラックバックも承認制にできればいくらかマシかもしれませんね。

投稿者 (o) [TypeKey Profile Page] : 2004年06月21日 02:00

こんにちは。
Jcode.pmはちょっとトラブっていますが、なるほど、Encode.pmですね。(自分の無知のためEncode.pmで検索してきました(恥)。Jcode.pmの後継とありました。)
MTに限らず文字コード関連では泣かされること多々ありまして、頭の痛い問題です。

トラックバックの承認制、ちょっと考えていました。そんなのがあると安心ですね。でもそうなると、普通にフレンドリーな感覚でトラックバックしたい時に
「やっぱりやめておこうかな。」
なんて思ってしまわせたりしないかと心配です。
まだスパムトラックバックがそれほど行われていない(?)のが救いのような気がします。


投稿者 megu [TypeKey Profile Page] : 2004年06月21日 22:05

コメントしてください




保存しますか?