2012年8月29日水曜日

日本語を打ちたい!!

という、タイトルの気持ちで昨日今日のデータベースの章を過ごしていました。語彙も難しかったです。ずっと検索していました。

そう、テキストは、taroだのjiroだの半角英数字のみを扱っていたので、また性懲りもなくnameのところに"笑福亭仁鶴"などのアレンジを加えて遊んでいたのです。全ては、お隣さんをわらかすために……。ところが、ひらがなやカタカナなどの全角を入れたとたん、PHP MyAdminさん上でレコードを確認したら文字化けしている。しかも、気持ちのわる~い化け方でした。これでは、わらかすどころの話ではありません。だので、急遽、「なぜ??」を探すネット検索の旅に出かけてまいりました。

ちなみに、一番最初の行にはちゃんと<meta charset="UTF-8">を書いていました。しかし、化ける。

おなじみ、googleで検索したところ、このような文字化けに悩んでいる人々はごろごろといて、すでに誰かが誰かに質問とかしていて、「解決しました!!」という案件も多数あるということが分かり、ヒッヒッヒ、さすが、世の中には賢い人がおるもんだ、私はこれをちょちょいとコピペして自分の問題を解決させていただこうと思ってコピペを試みました。……が、なんか、全然解決しないではないか。

気持ち悪い文字化けから「????」のような文字化けになったので、なんか、改善には向かっているっぽい、というわけで、旅を続行しました。

そして!!最後にたどり着いたのが mysql_query('set names utf8'); という一文。なんか、これを、データベースに接続するのところに入れたら、たったそれだけで解決しました。こうして、めでたく、sabuやsiroという面白味のない名前から脱出して、ちびまるこちゃんの登場人物やドラえもんの登場人物の名前を登録しまくることに成功しました。そういうわけで、ami & 八十吉さんの悪ノリ実験がめでたく開始されました。

そしてこの時、ワイルドカード検索についても興味深い発見をしました。例えば、"%し%"という風に検索ワードを設定します。これは、文字列の中に「し」が含まれる、という意味になるように使いました。

それで検索にかけた結果、表示されるであろうと予想された「しずかちゃん」というレコードのほかに、「ジャイアン」というレコードも検索に引っかかりました。「し」じゃなくて「じ」である上に、ひらがなでセットしたのに、カタカナなのに検索に引っかかってきた、というところに、八十吉さんとすげぇ~、すげぇ~!!なんでかわからんけど、すごいなぁ!!!と言うておりました。(もちろん、理由は分かりません。人間が「し」と「じ」は似てる、と認識できるのはわかるのですが、コンピュータが認識しているのかなぁ?!と思うと、なんだか、すごい。)

しかーし!!!!

この記事を投稿する前にset  namesというやつについてもう一回ググってみたら、なんか、脆弱性があってSQLインジェクション(p142)というので攻撃されやすいからあんまりつかわへん方がいい、的なことも書いてありました。「日本語打ちたい~、表示させたい~、はぁはぁ(必死)」ととにかく出てきた情報を片っ端から試していてうまく機能したので、うっきゃっきゃ、と喜んでいたのですが、もう少し文字コードについては調べて確実な方法を見つけ出す必要があるなぁ、と思いました。でも、日本語ユーザーとしては、日本語を使えないとなると、これは、困る!!(というか、意味ない。)と思いませんか?!この文字化け問題、はよ完全解決の策を見つけたいもんです。(明日はなんもしませんが。今日のバイトで疲れ果てました。家ではPHP使われへんし、今日はまさかの20名予約で、死ぬる思いでした。火曜日やから暇を予想していたのに……。淡い期待が見事に裏切られた。チーン。)

では、では。最後に「しかし」があったから、結局あんまり有益ではない情報になってしまいましたが、あほあほ研究所の成果報告でした~!!!

4 件のコメント:

  1. phpは、面白くないし、解らないし、引っかかりもないのイイとこなし( ̄◇ ̄;)
    せっかく、データベースで使えるんじゃない⁈って喜んでたのもつかの間、漢字入力出来ないんじゃ使いにくいなぁ~って思ってたとこ。ナイスamiちゃん‼また、やる気でたよん。ありがとう‼

    返信削除
    返信
    1. >>daiyasakuraさん
      php確かに難しいっ!!でもあほあほ実験できるところまでたどり着いたら面白いですよ!!だので、無理やりそこに自分を持っていきましょう~!!えいえいおう( ;´Д`)ノ

      削除
  2. いつもながら、濃い時間を過ごしていることに感心しきり。
    ヒジョーに有益情報ですよ!

    今日は、まるでスイッチが入らず、
    頑張ったのは最後にgifアニメを作った時だけでしたわー(^-^;

    ダメなimrさんにまた研究成果を伝授してくださいませ~

    返信削除
    返信
    1. >>imrさん
      ありますよねえ!!@スイッチはいらへん日
      月曜日がそうでした(^_^;)私は他のソフトに逃れるどころか完全スイッチオフ(昼寝)でした。はは。

      削除