PHPカンファレンス2010テックデイでの講演資料 PDFダウンロードは http://www.hash-c.co.jp/archive/phpconf2010.htmlRead less
補足 この記事は旧徳丸浩の日記からの転載です。元URL、アーカイブ、はてなブックマーク1、はてなブックマーク2。 備忘のため転載いたしますが、この記事は2010年7月1日に公開されたもので、当時の徳丸の考えを示すものを、基本的に内容を変更せずにそのまま転載するものです。 補足終わり PHPのデータベース・アクセス・ライブラリPDOは、DB接続時の文字エンコーディング指定ができないため、文字エンコーディングの選択によっては、プレースホルダを使っていてもSQLインジェクション脆弱性が発生します。 追記(2011/06/19) ここに来て急にブクマが追加されはじめていますが、このエントリを書いてから状況が改善しています。PHP5.3.6(2011/03/17)にて、PDOでもデータベース接続の文字エンコーディングを指定できるようになりました。この版で、UNIX版のPHPでは解決しましたが、Win
6月 11th, 2008 Posted in C++ Windowsアプリケーションでもネットワークにつながって、サーバアプリケーションと連携することが多くなってきてますねぇ。ネットワークといえば文字コードはUTF-8なイメージがあるワタクシですが、C++ではShift-JISなアプリばっかり作ってきたので、UTF-8に変換するにはどうしたらいいの?ってことでまとめます。 C++でShift-JISをUTF-8に変換するには、 Shift-JIS→UTF-16→UTF-8 の順番で変換する必要があります。 そもそも、UTF-16とUTF-8はどう違うのか。UTF-16は文字に割り当てられる番号(コードポイント)が2バイトで格納されます。一方UTF-8は、0~127のコードポイントは1バイトで格納され、128から上のコードポイントは、2~6バイトで格納されます。0~127のコードポイントで
文字コードを判別するバイト型配列を文字列に変換する方法は「バイト型配列のデータを文字コードを指定して文字列に変換する」で紹介しましたが、データの文字コードが分からなければ変換できません。ここでは、バイト型配列のデータから文字コードを判別する方法を紹介します。 .NET Frameworkでは、基本的には、文字コードを判別する方法が用意されていませんので、外部DLL、OCX等を使うか、自分でコードを書くかということになります。 BOMで判断する方法BOM(バイトオーダーマーク、byte order mark)と呼ばれる「印」がデータの先頭に付いている時は、これを手掛かりに文字コードを判別することができます。 以下に、BOMから文字コード(UTF-8、UTF-16BE、UTF-16LE、UTF-32BE、UTF-32LE)を判別するメソッドの例を示します。 ''' <summary> '''
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く