タグ

encodingに関するmachatakaのブックマーク (3)

  • Perl の多言語処理 -- Perl ヒント集 (ja)

    エンコードの処理の基 Perl 5.8 以降,テキストの処理が UTF-8 (Unicode の変換形式のひとつ) を軸におこなわれるようになりました。Shift JIS や EUC-JP での処理が一般的な日語を Perl で扱う場合,エンコードを意識したプログラミングをおこなうことが必要になります。具体的には,Perl でエンコードを意識する必要のあるのは以下の箇所です。 スクリプト自体のエンコード ファイルの入出力 標準入出力 標準エラー出力 データベース,CGIなどプロセス間のインターフェース Perl 5.8 では内部処理が UTF-8 で行われますが,特にエンコードの指定がされない場合,テキストは文字単位ではなく,バイト単位で処理されます。バイト単位で Shift JIS などのテキストを処理することもある程度可能ですが,2バイトの文字が文字として認識されていませんから,正

  • Wide character in print at ... - iRSSの日記

    この「Wide character in print at ...」には、何度も、悩まされては、 理解するのだが、のど下過ぎると、わすれちゃう。 再復習。 printするときに、utfフラグがついているのがいかんです。 Wide character in print at ..のメッセージがでる原因は,print対象の文字列にutf8フラグがついているということ #!/usr/bin/perl -w use strict; use warnings; use utf8; my $str = 'あああ'; print $str; ↑これを実行すると Wide character in print at ... line 6. なんてメッセージがでます。 対策としては #!/usr/bin/perl -w use strict; use warnings; use utf8; my $str

    Wide character in print at ... - iRSSの日記
    machataka
    machataka 2011/05/04
    wide character
  • yohgaki's blog - これからのプログラムの作り方 - 文字エンコーディング検証は必須

    (Last Updated On: 2016年3月3日)最近PostgreSQLMySQL両方にSJISエンコーディングを利用している際のエスケープ方法の問題を修正がリリースされています。この件は単純に「データベースシステムにセキュリティ上の脆弱性があった」と言う問題ではなく「アプリケーションの作り方を変える必要性」を提起した問題です。 参考:セキュアなアプリケーションのアーキテクチャ – sandbox化 PostgreSQLMySQLの脆弱性は特にSJIS等、マルチバイト文字に\が含まれる文字エンコーディングが大きな影響を受けますが、同類の不正な文字エンコーディングを利用した攻撃方法が他の文字エンコーディングでも可能です。例えば、UTF-8エンコーディングは1文字を構成するバイト列の最初のバイトの何ビット目までが1であるか、を取得してUTF-8文字として1バイト~6バイト必要なのか

    yohgaki's blog - これからのプログラムの作り方 - 文字エンコーディング検証は必須
  • 1