2010/02/02

oscommerce - EUCからUTF-8に移行

oscommerceはデフォルトでEUC推奨なので全てEUCだ。
データベースにMySql4を使っているので、MySql5に移さないと使えない。
作業的にはこんな順序かな?

oscommerceのファイルバックアップ

データベースのバックアップ

スクリプトの修正Mysql4=>MySql5
../catalog/default.php
../catalog/advanced_search_result.php


言語ファイルのCHARSETをUTF化と全ての書類のUTF化
(書類の文字コードもUTF-8のLF改行で統一)
../catalog/includes/languages/japanese.php

サーバー設定をlocalhostからMySql5のサーバーに変更(UTF-8)

バックアップしたsqlファイルを開きデータを確認。日本語等が文字化けしてsyntaxエラーを引き起こすのですが、出たら出たでエラーレポートを見てエラーの周辺の行をチェックして修正または削除。¥r¥nの削除または『¥』を『\』(バックスラッシュ)に置き換え

DBをドロップしてMySQL5へ切り替え(照合順序はutf_general_ci)
DBにUTFのsqlファイルをインポート15MBまでならphpMyadminでGO

修正したファイルをアップロード

カテゴリーが文字化けする場合はキャッシュが効いているので、管理画面より
[各種ツール]=>[キャッシュコントロール]=>カテゴリーボックスのキャッシュブロックを削除

フッターの文字化けは大概日付。
../catalog/includes/languages/japanese.phpの以下の箇所
define('DATE_FORMAT_LONG', '%Y年%m月%d日(%a)'); // this is used for strftime()
これを
define('DATE_FORMAT_LONG', '%Y年 %m月 %d日'); // this is used for strftime()
こう(半角開けただけ)