さくらインターネットにpWebManagerをUTF-8で入れようと試みる。(ついでにDBことMySQLの文字コードも変えちゃう)

DBの文字コードをutf8にしちゃう
いやならテーブル単位でやるしか。
$ echo "alter database アカウント default character set utf8;" | mysql -h mysql数字.db.sakura.ne.jp -u アカウント -p
>パスワード聞かれるから入力する

$ cd 適当なディレクト

$ wget 'http://www.pwebmanager.org/pwm/top.html?module=Default&action=Download&type=File&mcode=61&fcode=6'

$ mv top.html\?module\=Default\&action\=Download\&type\=File\&mcode\=61\&fcode\=6 pwm-3.2.2.zip

$ unzip pwm-3.2.2.zip

$ cd pwm-3.2.2

$ find . -type f \( -name "*\.php" -o -name "*\.html" -o -name "*\.tpl" \) -exec sed -i '' 's/euc-jp/utf-8/g' '{}' +

$ find . -type f \( -name "*\.php" -o -name "*\.html" -o -name "*\.tpl" \) -exec sed -i '' 's/EUC-JP/UTF-8/g' '{}' +

$ find . -type f \( -name "*\.php" -o -name "*\.html" -o -name "*\.tpl" \) -exec nkf -w --overwrite {} +


後は前やったとおり。
http://d.hatena.ne.jp/hinami_net/20101221/1292934994

2010/12/24 23:51追記
どうやらこれだけではダメらしい。
アプリケーションがコネクトする度に文字コード指定せにゃならんようだ。
なんか美しくないけどコードに直接手を入れて対応することにした。
対象ファイルは
pwmt/system/webapp/lib/StandardAction.class.php

以下diff
StandardAction.class.php.patch

--- StandardAction.class.php	2010-12-24 23:49:00.000000000 +0900
+++ StandardAction.class.php~	2010-12-24 23:48:43.000000000 +0900
@@ -12,6 +12,7 @@
 	function initialize(& $controller, & $request, & $user) {
 		if (!$request->hasAttribute('initialized')) {
 			$this->db = new Database();
+			$this->db->execute('SET NAMES utf8', null);
 
 			//何度も同じ処理をしないためのフラグ
 			$request->setAttribute('initialized', TRUE);