タグ

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

  • Tips on IEC (implicit encoding conversion) - Islands in the byte stream

    Perlにおいて日語のテキスト文字列とバイナリ文字列*1を結合すると激しく文字化けするのは誰もがつまづくトラップですが、これはPerlのデフォルトのIECが Latin-1 に基づいて行われるからです。UTF-8ではなくLatin-1なのは後方互換のために必要な決定なのですが、我々日人にとってはこのせいで文字化けに苦しまれることになってしまいました。 そこで、IECが発生したときに致命的エラーを発生させるプラグマを書いてみました。 https://github.com/gfx/p5-encoding-implicit `no encoding::implicit` によって、そのスクリプト全体でIECを禁止します。これはencoding::warningsプラグマとほとんど同じですが、デフォルトで警告ではなく致命的エラーであること、スクリプト全体に効果があることが異なります。これにより

    Tips on IEC (implicit encoding conversion) - Islands in the byte stream
    koba04
    koba04 2011/02/24
    知らなかった。
  • PHPだと文字化けしないのに、なんでPerlでは文字化けするの?弱いの? - Perl楽しいから好き

    数週間前、会社の同僚から 「PHPではこんな文字化け起きないのに、なんでPerlでは起きるんだろうか?」 という話をもらった。 「言語仕様なんじゃないかな?」 と、それっぽいことを答えて、お茶を濁したのですが やっぱり気になったので、自分なりに調べてみた。 ※それなりに調べて、自分なりに解釈したものの誤っている部分もあるかと思うので(特にPHPに関して)お気づきの点があれば、ご指摘ください。 ※また、回りくどい考察や思考の過程をすっ飛ばして結論を読みたい方は、一番下の「■乱暴な結論 」をご覧あれ。 Perlでのマルチバイト文字列の扱い ◎気をつけたい前提条件 (1)Perlは内部処理を行う際に全ての入力をPerl内部用UTF-8内部文字列に変換して処理する (2)encodingしなければ、Perlは入って来るマルチバイト文字列をシングルバイト文字列として処理する (3)Windowsコマ

    PHPだと文字化けしないのに、なんでPerlでは文字化けするの?弱いの? - Perl楽しいから好き
  • perlunifaq - Perl Unicode FAQ - perldoc.jp

    This is a list of questions and answers about Unicode in Perl, intended to be read after perlunitut. これは、perlunitut の後で読むことを想定した、Perl での Unicode に関する 質問と答えの一覧です。 perlunitut は実際には Unicode チュートリアルじゃないんじゃないの?¶

    koba04
    koba04 2010/11/18
    ちゃんと勉強しよう。
  • 文字コードに起因する脆弱性を防ぐ「やや安全な」php.ini設定

    補足 この記事は旧徳丸浩の日記からの転載です(元URL、アーカイブはてなブックマーク1、はてなブックマーク2)。 備忘のため転載いたしますが、この記事は2010年9月27日に公開されたもので、当時の徳丸の考えを示すものを、基的に内容を変更せずにそのまま転載するものです。 補足終わり PHPカンファレンス2010にて「文字コードに起因する脆弱性とその対策」というタイトルで喋らせていただきました。プレゼンテーション資料をPDF形式とslideshare.netで公開しています。 文字コードのセキュリティというと、ややこしいイメージが強くて、スピーカーの前夜祭でも「聴衆の半分は置いてきぼりになるかもね」みたいな話をしていたのですが、意外にも「分かりやすかった」等の好意的な反応をtwitter等でいただき、驚くと共に喜んでいます。土曜にPHPカンファレンスに来られるような方は意識が高いというの

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

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

    文字コードに起因する脆弱性とその対策
  • ruby|perl - 文字コードのちょっと高度な判定 : 404 Blog Not Found

    2007年01月11日21:00 カテゴリLightweight Languages ruby|perl - 文字コードのちょっと高度な判定 これははっきり言って悩ましい。ですが、判定が曖昧な場合はその旨をきちんと通知するのがBetter Practiceではないかと思います。 Matzにっき(2007-01-03) 手元のcalkiがUTF-8の「》」相当の文字(U+8BB)を含むエントリが文字化けするので、 nkf-utf8のソースを見てみた。 どうも自動判定の優先順位がEUC-JP,SJIS,JIS,UTF-8で固定されていて、 EUCの範囲内に収まる文字列はすべてEUC-JPとみなすことになっている。 で、UTF-8の「》」はEUC-JPの「損」と同じバイト列なのだ。例えば、以下を行ごとにコード判定すると、以下のような結果になります。 son.utf8 » 損 »損 »Son nk

    ruby|perl - 文字コードのちょっと高度な判定 : 404 Blog Not Found
  • perlの波ダッシュの文字コード変換のまとめ - (゚∀゚)o彡 sasata299's blog

    2009年02月22日22:31 Perl perlの波ダッシュの文字コード変換のまとめ perlの文字コード周りはなかなかカオスです。外部エンコードとか、perl内部での文字コードとか、UTF8フラグとか。UTF8フラグ?なにそれ?な人は、こことかここを見てみると良いかも。(・∀・) 基的には外部から入ってきた時点でdecodeして、出力時にencodeしてやれば全て解決するんですが、「〜(波ダッシュ)」と「−(全角マイナス)」だけは特別です。注意が必要なのはこの2パターン。 ① utf8⇔shift_jis ② utf8⇔euc-jp ①については以前、perl utf8→sjisで文字化けという記事で紹介しましたが、encode時に、'sjis'では無くて、'cp932'を指定すればOK。※「〜」とか「−」はsjisには含まれていない文字なのが原因。 今回紹介したいのは②の場合です

  • 第32回 Encode:日本語だけ扱えればよいのではなく | gihyo.jp

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

    第32回 Encode:日本語だけ扱えればよいのではなく | gihyo.jp
  • 株式会社VOYAGE GROUP

    株式会社VOYAGE GROUPは、2022年1月、株式会社CARTA HOLDINGSと合併いたしました。 関連リリース:CARTA HOLDINGS、基幹グループ会社のCCIおよびVOYAGE GROUPと統合へ https://cartaholdings.co.jp/news/20210513_01/ CARTA トップへ

    株式会社VOYAGE GROUP
  • perl - use CGI; use Encode; # 非英語Webプログラミング3原則 : 404 Blog Not Found

    2009年06月23日15:30 カテゴリLightweight Languages perl - use CGI; use Encode; # 非英語Webプログラミング3原則 これは、実はPerlに限らず未だに事実だったりするのですが.... Perl でフォームデータから UTF-8語文字をとりだす方法 (プログラミングの小石・大石) UTF-8 のフォームによっておくられたデータのなかから日語文字をとりだすことは,日Perl CGI プログラマならたいてい必要になることである. ところが,その方法は意外に確立されていないようにみえる. しかし、元発言の方法は先祖帰りすぎるので。 Perlプログラマー以外にも、Webプログラマーであれば有用なentryです。 PerlでWebプログラミングする場合の三原則 QueryはCGIモジュールで処理する 文字コードはEncode

    perl - use CGI; use Encode; # 非英語Webプログラミング3原則 : 404 Blog Not Found
  • 1