スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

MySQL 5.1 → MySQL 5.5 へアップグレードした後の文字化け対策

PHPでMySQLにデータを書き込むアプリを作ってたんだけど
以前からDBの中身をmysqlコマンドで覗くと文字化けしていた。
特に中身をいじることもなかったので放置してたんだけど
MySQL5.1 → MySQL5.5へアップグレードする際に少し手を入れて
中身を見れる必要が出てきたので文字化け対策を行うことにした。
これが、まーハマるハマる。

まず、アップグレードした段階で
/etc/my.cnfに既に

[mysqld]
character-set-server = utf8

とだけは記述されていた。
なので

[mysql]
default-character-set = utf8

の記述を追加してやり
MySQLを再起動。

show variables like 'char%';

と叩き
結果を見てみると
character_set_serverがlatin1になったまま。
あれ?おかしいな。character-set-serverはutf8って指定してるんだけどな・・・
うんうん唸って色々見てみると
/etc/mysql/my.cnfなんてのがある。
まさかと思ってここに

character-set-server = utf8

を追加してやると
無事latin1の設定が消えた。
これで大丈夫だと思ってselectしてみたんだけど
文字化けしたまま。さらに1時間半程度悩んだ後、
新しく手動でデータを突っ込んでみたら化けずに登録される。
ああ、つまり今まで登録したデータは化けたままになっちゃうのか・・・orz
あと、うろ覚えで正確じゃないかもしれないけどApacheも再起動したほうがよさそう。
たしか設定が直ったあとに日本語突っ込んだらまだ化けてたと思う。
スポンサーサイト

jqueryのtextでの文字設定で失敗した件

jqueryでspanタグの中身なんかを変えるときによく

var fieldVal = xxxxx;
$('#field').text(fieldVal)

てなコードを書いてたんだけど
この変数の値がundefinedでspanタグにすでに値が設定されている場合、
spanタグに設定されている値が変わらないみたい。
後から考えると納得いく動きではあるんだけどちょっと想定してなくてハマってしまった。
アプリの性格にもよるんだけど今のところではメソッドチェーンを使って

$('#field').text('').text(fieldVal)

とか

var fieldVal = (xxxx) ? xxxx : '' ;
$('#field').text(fieldVal)

とかにしたほうがバグを出さずに済みそう。
多分後者のほうがnullもundefinedも両方拾えて都合がいいのかな。
三項演算子ってあんまり使うのに抵抗はないけど
もう少し簡単な書き方ってないもんかしらね。

コップ本とEffective Java

買っただけで読めてないなぁ。
何とかして勉強していきたいんだけど、どうにもモチベーションが・・・・orz

たくさん行数を返すプログラムの出力結果を複数のファイルに分けて保存する

一つのファイルに出力するなら単純にリダイレクトすればいいけど
たまに複数のファイルに分ける必要が出てくる。
(今回は一つのファイルからの入力だと大きすぎてOutOfMemoryがでたため。)
そういったときには

$ {10000行標準出力に出力するコマンド} | split -d -l 1000 - prefix_

こんな感じで1000行ずつ表示出力してやると便利。

ファイル内容の末尾の1文字を削る or 別の文字に置き換える(jsonデータの加工)

プログラムで出力した
こんな感じの正しくない形式のJSON

{"a": "text"},
{"a": "text"},
{"a": "text"},

↑こんな感じのやつ。

↓こんな感じにしたい。

[{"a": "text"},
{"a": "text"},
{"a": "text"}]

と言ったときに使ったコマンド

$ sed '$s/,$/\]/' target.json | sed '1s/^/\[/'


それぞれのsの前に置いてある1や$が1行目、最終行を示している。
最終行の末尾の「、」を「]」に、先頭行の一番最初の文字に「[」を挿入
ということをやっている。
プロフィール

ラム君(モヒカンVer)

Author:ラム君(モヒカンVer)
都内でプログラマのようなものをやっています。
まだまだ初心者ですがよろしくお願いします。

最新記事
最新コメント
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。