CMSimpleについての覚書お手軽なCMSである、CMSimpleを試しております。 さくらインターネットに設置した場合、標準のShift-JISでは文字化けする字がありました。(「〒」や「立」等) そこで文字コードをUTF-8にしてみたのですが、今度は違う文字が文字化けしました。(「大」や「で」等) とりあえず私がアップしたコンテンツの範囲では、文字コードをEUC-JPにすることで、文字化けしなくなりました。 文字コードをEUC-JPにするためには、languagesフォルダのjp.phpファイル内の記述をEUC-JPに変更し、EUCで保存しなおすだけでいいようです。 追記と思ったら、EUC-JPでも「色」や「ェ」なんかが化けました。 現在最新が2.5ベータ版なので、正式版で直るのを期待します。 私の問題でしたとにかく一度すっきりさせようと、別のディレクトリにインストールしなおし、勝手に気を効かしてcharsetを変更していた箇所や、コードを変換して保存しなおしていたファイル等、何も手を加えずに作業をしたら、文字化けすることなく普通に表示されました。 私が余計なことをしたことが問題だったようです。 堂々巡りと思ったら、やっぱり日本語モードで文字を入力し、保存すると文字化けします。 結論としては、英語モードのまま日本語入力する。ということで、運用できそうです。 それにしても、メニュー等も含めて、英語モードのままで日本語に変更しても問題ないのに、日本語モードにすると文字化けする。英語モードの文字コードの、iso-8859-1にしても駄目なのは何でだろ? 原因は判明。対応は無理?私の拙い英語読解力で、CMSimpleサイトのフォーラムで情報収集したところ、文字化けする原因が判明しました。 CMSimpleでは各ページを生成するときに、大きな1枚のHTMLから見出しの<H1>ごとにページを分割しております。 その際、普段使われないキャラクター(iso-8859-1での文字コード167「§」)を、分割するための文字として使っているようです。 http://www.cmsimple.dk/forum/viewtopic.php?t=1429 ところが、そのために「立」(Shift_JIS 0x97a7)等、2バイト目が「a7」(=167)の文字が分割?されて文字化けしてしまうようです。 これは、日本語だけでなく、中国語や、その他ポーランド語等でも文字化けが起きていて、作者もどうすべきか悩んでいるようです。 これで解決!なのか?もう取りあえずダメ元で、「§」を1バイト文字で置き換えてしまえ!と、文字コード表を眺めつつ、少なくとも私は使わない文字を探してみました。 すると、「`」(バッククオート、逆クオート、逆引用符、アクサングラーブ)を発見! う〜ん・・・今回の問題の原因と思われる、cms.php内でも使われていない文字だし・・・ と、意を決してcms.phpファイルを、iso-8859-1コードの編集ができるエディタで開き(秀丸エディタの場合はエンコードの種類を「欧文」にする)、216行、218行、220行にある計6つの「§」を1バイトの「`」に置換しました。 そのcms.phpファイルで上書きしたところ・・・おぉ〜っ!!文字化けがしなぃ〜っ!! ということで、取りあえずこの状況でテスト運用してみます。 果たして、「`」を使ったことで、何か問題は起きるのか? ホントに堂々巡りで恥ずかしい限りです。やったぁ〜!と調子に乗って色々と入力していたら、上記対処では「チ」や「〜」が化けました。 結局、化ける文字が変わっているだけです・・・(T_T) 何故FCKeditorではなく、TinyMCEを選んだかCMSimpleは、標準でWYSIWYGエディタの機能がありますが、外部のWYSIWYGエディタを使うこともできます。 標準のWYSIWYG画面 また、TinyMCEとFCKeditorに関してはphpファイルが用意されており、自力で頑張らなくとも簡単に変更できます。 さて、TinyMCEとFCKeditorの両方試してみたのですが、私はTinyMCEを使うことにしました。 デザインや右クリック時にメニューが表示される点ではFCKeditorが便利なのですが、既存のHTMLを貼り付けた場合(つまりFCKeditorが想定していないフォルダに画像がある場合)、画像が表示されません。 何らかの設定で解決する気もするのですが、TinyMCEは何の問題もなく表示されたので、取り合えずこちらを使っております。 WYSIWYGエディタTinyMCEについての覚書解凍した後、tinymce内のjsbripts内のtiny_mceのCMSimpleのルートにコピー tiny_mce → langs → ja.js tiny_mce → themes → advanced → langs → ja.js tiny_mce → plugins → table → langs → ja.js 表の機能を有効にするには(この場合は、TinyMCEを呼び出すCMSimpleのtinymce.phpの記述) plugins に table を加える 例えば、 theme_advanced_buttons3_add に tablecontrols を加える また、セルの色を変更する機能を有効にするには、table_color_fields : true の記述を加える |