タグ

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

  • 文字コードに起因する脆弱性とその対策

    4. 徳丸浩の自己紹介 • 経歴 – 1985年 京セラ株式会社入社 – 1995年 京セラコミュニケーションシステム株式会社(KCCS)に出向・転籍 – 2008年 KCCS退職、HASHコンサルティング株式会社設立 • 経験したこと – 京セラ入社当時はCAD、計算幾何学、数値シミュレーションなどを担当 – その後、企業向けパッケージソフトの企画・開発・事業化を担当 – 1999年から、携帯電話向けインフラ、プラットフォームの企画・開発を担当 Webアプリケーションのセキュリティ問題に直面、研究、社内展開、寄稿などを開始 – 2004年にKCCS社内ベンチャーとしてWebアプリケーションセキュリティ事業を立ち上げ • その他 – 1990年にPascalコンパイラをCabezonを開発、オープンソースで公開 「大学時代のPascal演習がCabezonでした」という方にお目にかかること

    文字コードに起因する脆弱性とその対策
  • 第32回 Encode:日本語だけ扱えればよいのではなく | gihyo.jp

    一般的には推奨されないencodingプラグマ 前回取り上げたencodingプラグマは、簡単なjperl用のスクリプトを移植したい場合には便利ですが、perlunifaqというPerl付属のマニュアルにははっきり「Don't use it.」と書いてあるくらい、一般的には使えないプラグマと認識されています。 前回も見たように、encodingプラグマが対応しているのは、ソースコードに埋め込まれている文字列やそれに類する正規表現、そして標準入力からのデータを指定された文字コードからPerlの内部表現に変換し、標準出力へ出力する際には内部表現を指定された文字コードに変換することだけです。ほかのファイル入出力部分や、コマンドラインから受け取った引数、標準エラー出力などの変換は行わないので、ちょっと凝ったことをしようと思うと、結局「外から入ってきたものはデコード、外に出すものはエンコード」という

    第32回 Encode:日本語だけ扱えればよいのではなく | gihyo.jp
  • Perl5.8でdecodeが失敗する。 - memo_ruby

    Perl5.8でdecodeが失敗する。 find_encoding('utf8')->decode($data); とすると、こんなメッセージ出す。 Cannot decode string with wide characters. 入力データ($data)はUTF8の文字列。 guess_encoding($data, qw/shiftjis utf8 ascii/)->name #=> utf8 解決方法はhttp://lab.z-nix.jp/mt/archives/2005/10/ にあった。アリガト!(´▽`)。 で、結局ソリューションは??と聞きたくなるのですが、ようは UTF-8 のフラグが立ちまくっているので、 その状態ではEncodeできませんよということだ。つまり UTF-8 のフラグを降ろせば先程のエラーは出なくなるはず。UTF-8 フラグについては延々と書かれ

    Perl5.8でdecodeが失敗する。 - memo_ruby
  • mysql で utf8 を使う (マルッと!)

    mysql 4.1以降で日語を使うための設定方法。 UTF8を使います。 /etc/my.cnf に以下のような記述を書き足しておく。 [mysql] default-character-set=utf8 [mysqld] default-character-set=utf8 character_set_server=utf8 skip-character-set-client-handshake skip-character-set-client-handshake は、「サーバーの文字コード設定をクライアントでもそのまま使う」という意味らしい。 で、mysqlを再起動。 確認方法。 mysql> SHOW VARIABLES LIKE 'character\_set\_%'; +--------------------------+-------+ | Variable_name

  • DBIx::Encoding でPerlとDB間の文字コード & utf8 flagを透過的に扱う - JPerl Advent Calendar 2009

    DBIx::Encoding でPerlDB間の文字コード & utf8 flagを透過的に扱う - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? はじめに はじめまして、myfinderといいます。 Casual Trackの記事をupしたときに話が出たので、記事を書いてみたいと思います。 今回ご紹介するモジュールは DBIx::Encoding です。 DBIx::Encodingは非常に小粒なモジュールですが、BKだなと自分でも思っています。 cho45さんの紹介されているモジュールと割と趣が近い気がします。 Casual Trackのxaicronさんの記事にもあるように、いわゆるモダンなPerl開発ではソースコードをUTF-8で記述し「use utf8;」し、文字列は「入力時にdecode、

  • MySQLに既に存在するデータベース内部の文字コードを、latin1からutf8に変換する方法。

    MySQL/Rubyのバージョンをあげたら、MySQLから取ってきてたデータが全部文字化けしてたので、なんでかなぁ〜と思ったら... MySQLのデータベース内部のエンコーディングが、latin1になってた(汗 dumpしたSQLを見てる限り、文字コードがUTF-8DBの中に、文字コードをlatin1に指定したテーブルを作っちゃってたらしい...orz MySQLとデータベース自体はEncoding=utf8だったので、どうやら昔のプラグインが悪さしてた? MySQL/Rubyを、Webサーバ上のmysql-configがlatin1(もしくはエンコーディング設定無し)の状態でソースから入れたのが原因かなぁ〜? まぁサーバ環境設定したのが1年以上前なんで、原因ははっきりとは分からずなのですが、ひとまず文字コードを「MySQL文字コードの移行」という記事を手に、MySQL内部のlat

  • myfinder's blog: DBIx::Encodingというモジュールを書いた

    YAPCおつかれさまでした。YAPC中、今まさに課題になっているDB周りの問題を解消すべくDBIx::Encodingというモジュールを書きました。このDBIx::EncodingはDBIのサブクラスで、executeとfetchの際に指定した文字コードでencode/decodeしてくれるものです。そもそもDBの文字コード設定がUTF8なら余り悩むこともないのですが、世の中いろいろと事情があってDB側を変更できない事も多いでしょう。そんなときにこのモジュールを使うと、DBI側で文字コードをencodeしてinsert/updateしてくれ、selectしたときにはutf8 flagを有効にした文字列を返してくれます。使い方はSYNOPSISにもありますが、下記の通りmy @dsn = ( 'dbi:mysql:host=localhost;database=mysql;

  • 続:Catalystでマルチバイトを取り扱うときのまとめ - hide-k.net#blog

    以前、Catalystでマルチバイトを取り扱うときのまとめという記事を書いたのですが、情報が少し古いので、最近僕がやっている方法を紹介します。 この記事では Catalyst 5.7015 Catalyst::View::TT 0.27 Catalyst::Plugin::ConfigLoader 0.22 Catalyst::Plugin::FillInForm 0.10 Catalyst::Plugin::Static::Simple 0.20 Catalyst::Plugin::Unicode 0.8 の環境で紹介しています。 また、基的にDBICに関しては以前の記事の通りDBIx::Class::UTF8Columnsを使うという感じです。 まず、こんな感じのアプリケーションを用意します。 MyApp package MyApp; use strict; use warnings

  • 1