mysql5.0.77 での文字化け

いつものうちの会社更新プログラムを、ふふふーんとサーバー移動でインストールしたら、データベースから引っ張った文字が文字化け!
他のサーバーと違うところっていったら、バージョンとかですが・・・・・・。

以前にもあったなぁ(mysqlバージョン 4.1.10a)と調べて、そのときの対応策をとりました。

CONNECTのタイミングで、

$dbh->do(“SET NAMES utf8”);

を入れる。これで解決。

調べているうちに、この$dbh->do(“SET NAMES utf8”);が一箇所じゃ収まらなかった例もあるみたいです。

MySQL 5.0.xの文字化け対策の試行錯誤(@うろぐ

xoops導入時に加えるスタイルシート

うちで作るXoopsは、Xoopsとしてのデザインありきではなくて、普通にサイトを作ってからXoopsに当てはめていきます。
だから、スタイルシートもXoops用というよりかは、普通のサイト用。
でも、ときどきXoopsに当てはめてから必要になるXoops用のスタイルシートってのがあるんですね。
とりあえず、そのときは普通のサイト用のスタイルシートに、以下を加えてます。

これは、どちらかというと私の仕事用メモ。

/*add for xoops*/
table.outer{
}

table.outer th{
ツꀀpadding: 5px;
ツꀀbackground: #76B30D;
ツꀀcolor: #FFFFFF;
ツꀀfont-weight: 600;
}

table.outer td{
ツꀀpadding: 5px;
ツꀀborder-coror: #555555;
}
table.outer td.head{
ツꀀbackground: #D5EDA1;
}

td#usermenu{
ツꀀborder: 0px;
}
td#usermenu a{
ツꀀdisplay: block;
ツꀀwidth: 170px;
ツꀀpadding: 5px;
ツꀀbackground: #D5EDA1;
ツꀀborder-top: 1px solid #FFFFFF;
ツꀀborder-bottom: 1px solid #76B30D;
}
td#usermenu a:hover{
ツꀀdisplay: block;
ツꀀwidth: 170px;
ツꀀpadding: 5px;
ツꀀbackground: #FFED46;
ツꀀborder-top: 1px solid #FFFFFF;
ツꀀborder-bottom: 1px solid #F4BF23;
}

.blockTitle{
ツꀀdisplay: block;
ツꀀwidth: 170px;
ツꀀpadding: 5px;
ツꀀbackground: #76B30D;
ツꀀcolor: #FFFFFF;
ツꀀfont-weight: 600;
ツꀀmargin-top: 15px;
}

ss魔法の言葉まとめ

会社の先輩にもらった、魔法の言葉集。別に魔法の言葉じゃないけど、合言葉なので。

・divその1でdivその2(float: left;)とdivその3(float: right;)のとき、divその1が下までいかない。

#bodyDIV:after {
ツꀀcontent:”.”;
ツꀀdisplay:block;
ツꀀheight:0;
ツꀀclear:both;
ツꀀvisibility:hidden;
}

 注意)divその1にあたるものには、widthを入れること。

・divその1でdivその2を入れているとき、divその1のwidthは正確に入っているのに広がっちゃう。(IE6のみ?)

divその2をinlineにしよう。

とりあえず、今日はここまで。

更新システム文字化け。

【症状】
更新システム(オリジナルスクリプト)をアップするが、日本語をいれると文字化けしまくる。
phpmyadminを使って、直接入れたデータに関しては、「十字架の記号」や「???」が出る。

### サーバーの条件 ###
Perl 5.8.5
Mysql 4.1.10a-log
####################

====スクリプトの設定====
INTER_CHARSETツꀀ = ‘euc’;ツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀ
DB_CHARSETツꀀツꀀツꀀツꀀ = ‘utf8’;ツꀀツꀀ
JS_CHARSETツꀀツꀀツꀀツꀀ = ‘utf8’;
====================

1) Jcodeがないので、Jcode.plを入れるが、Jcode.pmがないというエラーがでる。
下記記事を参考にJcode.pmを入れる(※スピーバーのサーバーの文字化けはこれで治ったから)

Jcode.pmをWindows上のPerlにインストールする (@にししふぁくとりー様

Jcode配布サイトより、zipファイルをダウンロード。重要なのはJcode.pmとJcodeフォルダ。

ツꀀ

しかし、エラーが出る。
クライアントとサーバーの文字コードの仲介役(Jcode.pm)のせいではないんだろう。
これは、mysqlの文字コードがおかしいと推察。

Continue reading

忘れっぽいコードのメモ

普段ふとしたときに使うのに、忘れっぽいコードをメモ。

※数文字以内にして表示させるコード
$doc_text =~ s/\r//g;
$doc_text =~ s/\n//g;
ツꀀツꀀツꀀ
ツꀀツꀀツꀀ if( length($doc_text) >300){
ツꀀツꀀツꀀ ツꀀ$doc_text = substr($doc_text, 0, 300);
ツꀀツꀀツꀀ ツꀀ$doc_text = HTML_ToJava($doc_text).”…”;
ツꀀツꀀツꀀ ツꀀ}

※newを出す

my $hikaku_start_d = $rec->{doc_start_d};
my $cur_date = (GetFormatDate); # 今日の日付

ツꀀツꀀツꀀ my $hikaku = “”;
ツꀀツꀀツꀀ my $startday;
ツꀀツꀀツꀀ my $todayplus;
ツꀀツꀀツꀀ my $s_y;
ツꀀツꀀツꀀ my $s_m;
ツꀀツꀀツꀀ my $s_d;
ツꀀツꀀツꀀ my $t_y;
ツꀀツꀀツꀀ my $t_m;
ツꀀツꀀツꀀ my $t_d;
ツꀀツꀀツꀀ
ツꀀツꀀツꀀ ($s_y, $s_m, $s_d) = split(/\//, $hikaku_start_d );
ツꀀツꀀツꀀ ($t_y, $t_m, $t_d) = split(/\//, $cur_date );
ツꀀツꀀツꀀ $startday = $s_y*365+$s_m*30+$s_d;
ツꀀツꀀツꀀ $todayplus = $t_y*365+$t_m*30+$t_d;
ツꀀツꀀツꀀ
ツꀀツꀀツꀀ if($todayplus-$startday <= 14){
ツꀀツꀀツꀀ DW(“ <span class=’new’>NEW</span>”);
ツꀀツꀀツꀀ }

でも、なんか、文字数は文字化けしてしまいます。
下記記事を参考

マルチバイト文字列の部分取得方法は?(@OKWave)

if文を一行で書く

if(条件文) 真の場合; else 偽の場合;

、■[PHP][メモ]1行比較(if文の代わり)のサンプル(@プラズマコイの[hatena])