以下のスクリプトでこのメッセージが出た!!
#!/bin/sh
------
for file in `find ./ -name *.tpl`
do
echo $file
nkf -w $file | sed -e "s/EUC\-JP/UTF-8/" | sed -e "/mod_load/"
mv ./tmp $file
done
------
$ find ./ -name *.tpl
じゃなく
$ fine ./ -name "*.tpl"
でできた!
そんなことでした。
結局データベースの問題でUTF-8への移行が余儀なくされたので、いろいろ変更しなくてはならない。。。
ひとつは、htmlタグに設定している、charsetを"UTF-8"にすること。
ファイル自体の文字コードをUTF-8に変更すること。
めんどくさい><b
ということで、シェルスクリプトを作って行うことに
シェルスクリプトを以下を参考にしました。
http://shellscript.sunone.me/
1. findを使って"tpl"が拡張子のファイルを探し出す。
2. "nkf -w"を使って、UTF-8に変換する
3. 各ファイルにある"EUC-JP"の文字列を"UTF-8"に変更する。
-----------------------------------------------------
#!/bin/sh
for file in `find ./ -name "*.tpl"`
do
echo $file
nkf -w $file | sed -e "s/EUC\-JP/UTF¥-8/"
mv ./tmp $file
done
-----------------------------------------------------
これで一発変換できるはず!
ひとつは、htmlタグに設定している、charsetを"UTF-8"にすること。
ファイル自体の文字コードをUTF-8に変更すること。
めんどくさい><b
ということで、シェルスクリプトを作って行うことに
シェルスクリプトを以下を参考にしました。
http://shellscript.sunone.me/
1. findを使って"tpl"が拡張子のファイルを探し出す。
2. "nkf -w"を使って、UTF-8に変換する
3. 各ファイルにある"EUC-JP"の文字列を"UTF-8"に変更する。
-----------------------------------------------------
#!/bin/sh
for file in `find ./ -name "*.tpl"`
do
echo $file
nkf -w $file | sed -e "s/EUC\-JP/UTF¥-8/"
mv ./tmp $file
done
-----------------------------------------------------
これで一発変換できるはず!
で、できた。
$ mysql -uuser -ppass database;
mysql> set names utf8;
(参考)
http://www.blogwapi.com/blog/0504skrmysql.html
これとは別に、my.cnfに以下を追記する方法もありました。
レンタルサーバのときはこれいじれないので、この方法はとれませんね。
というか、今回のがこの方法で直ったかどうかは不明です。
(参考)
http://japan.nucleuscms.org/bb/viewtopic.php?t=3927
http://onlineconsultant.jp/pukiwiki/?MySQL%E3%81%AE%E6%97%A5%E6%9C%AC%E8%AA%9E%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91%E5%AF%BE%E7%AD%96
(まとめ)
現象
コマンドラインからmysqlサーバへ入りSELECT文を実行すると日本語が"???"(クエスチョンマーク)になる。
ただし、phpMyAdminでは正常に見える。
いままで使用していたPHPスクリプトの結果も"???"になる。
解決方法
mysqlサーバへ接続直後に"set names utf8"というクエリを送る。
PHPでは、「mysql_query("set names utf8"); or $db_obj->Query("set names utf8");」という記述をDB接続直後に挿入する。
以上です。
やっとかいけつしてほっとしてます。。
$ mysql -uuser -ppass database;
mysql> set names utf8;
(参考)
http://www.blogwapi.com/blog/0504skrmysql.html
これとは別に、my.cnfに以下を追記する方法もありました。
レンタルサーバのときはこれいじれないので、この方法はとれませんね。
というか、今回のがこの方法で直ったかどうかは不明です。
skip-character-set-client-handshake(参考)
http://japan.nucleuscms.org/bb/viewtopic.php?t=3927
http://onlineconsultant.jp/pukiwiki/?MySQL%E3%81%AE%E6%97%A5%E6%9C%AC%E8%AA%9E%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91%E5%AF%BE%E7%AD%96
(まとめ)
現象
コマンドラインからmysqlサーバへ入りSELECT文を実行すると日本語が"???"(クエスチョンマーク)になる。
ただし、phpMyAdminでは正常に見える。
いままで使用していたPHPスクリプトの結果も"???"になる。
解決方法
mysqlサーバへ接続直後に"set names utf8"というクエリを送る。
PHPでは、「mysql_query("set names utf8"); or $db_obj->Query("set names utf8");」という記述をDB接続直後に挿入する。
以上です。
やっとかいけつしてほっとしてます。。