タグ

文字コードに関するmetazyのブックマーク (3)

  • その文字列はセーフ? 本当は奥深いデコード処理

    ジュン 特に最近話題になってるのは、バイナリセーフな関数とかバイナリセーフじゃない関数とかを交ぜこぜで使うと困ったことになる、ってとこかなぁ。 クウ バイナリセーフ……ですか? 言葉は聞いたことあるけど……。 ジュン んっと。バイナリをちゃんとバイナリとして扱えるってのが、バイナリセーフかな? クウ ふむ……。 ジュン 制御文字とかが交ざってるときに、文字列として扱わないと困るときがあるからねー。 クウ むむむ…… 制御文字の中でも特に「%00」などで表すことができるNULL文字を、Webアプリケーションに渡される文字列の中に混入することで、意図しない動作を引き起こす可能性がある。バイナリセーフの場合、NULL文字も文字として扱われるが、非バイナリセーフの場合、NULL文字を「文字列の終了」と見なしてしまうため、以降の文字を扱えず、この挙動の差から問題が発生する。 入力と処理、それぞれの「

    その文字列はセーフ? 本当は奥深いデコード処理
  • MySQL 文字化け問題を本気で直す

    mysql> status; -------------- mysql Ver 14.7 Distrib 4.1.20, for redhat-linux-gnu (i386) using readline 4.3 Connection id: 36 Current database: staff2006 Current user: maiha@localhost SSL: Not in use Current pager: lv Using outfile: '' Using delimiter: ; Server version: 4.1.20 Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: latin1 Db characterset: latin1 Client char

  • MySQLのcharsetをutf8に変更する方法

    PHPMySQLの勉強をするために、手持ちのPCでXAMPP環境をインストールするまではよかったが、MySQLで日語が正しく表示できるようにするため手こずりました。 同じようにハマる人が出てこないよう、手順をまとめます。 ・XAMPP for Windows 1.6.4 ・MySQL 5.0.45(XAMPP for WindowsのWebページには5.0.51と書いてあるのだが・・・) ・WindowsXP HomeEdition SP2 ふつうにXAMMPのインストーラでデフォルト設定のままインストール。 この状態でMySQLを起動すると となり、みごとにdefault_charsetはlatin1になります。 これはMySQLのバイナリ作成時にこの設定になっていたのでしょうがないでしょう。 これをuft8にしていきます。

    MySQLのcharsetをutf8に変更する方法
  • 1