タグ

utf8に関するdealforestのブックマーク (12)

  • Don't use DBIx::Class::UTF8Columns - JPerl Advent Calendar 2009

    Don't use DBIx::Class::UTF8Columns - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? 自分のつくったもジュールを紹介するハッカートラックということで、僕は DBIx::Class に同封されている DBIx::Class::UTF8Columns について書きます。 まず最初に、このモジュールをつかわないでください。 DBIx::Class::UTF8Columns は DBIx::Class のコアモジュールになってから、utf8 を扱う場合はこのモジュールを使うといいよという記述をいろいろなところで目にします。しかしこのモジュールがしていることを理解せずに使用すると予期せぬ不具合に悩まされるかもしれません。今日はこのモジュールを使わない方が良い理由と、その代替案を示

  • use utf8 環境下で => オペレータの左辺が UTF8 flag on になってしまう - daily dayflower

    use strict; use warnings; sub Dump { @_ = map { sprintf "'%s'(%s)", $_, utf8::is_utf8($_) ? 'utf8' : 'bytes' } @_; print {*STDERR} join(q{, }, @_), "\n"; } no utf8; Dump( foo => 'bar' ); #=> 'foo'(bytes), 'bar'(bytes) no utf8; だもんで,両者とも bytes なのは,まぁあたりまえ。 ところが,これを use utf8; で動かすと…… use utf8; Dump( foo => 'bar' ); #=> 'foo'(utf8), 'bar'(bytes) foo の UTF8 flag が on になってる! use utf8 にしてたので,任意の文字列リテラルが

    use utf8 環境下で => オペレータの左辺が UTF8 flag on になってしまう - daily dayflower
  • 「メモ」携帯サイトをUTF-8で出力する方法とSEO評価 - komoriyaのはてなダイアリー

    DoCoMo,AU,SoftbankのモバイルサイトをUTF-8 + XHTMLで作った時の対応方法と、モバイルクローラーのUTF-8ページに対する評価 対応端末 DoCoMo - UTF-8で記述するにはXHTMLが前提なので、XHTML対応端末が必須になります。 AU EZwebでは文字コードの指定は必須です。 また、EZwebでサポートする文字コードはShift-JISです。 文字コードの指定が無い場合、Shift-JIS以外の文字コードを指定した場合には、コンテンツが正しく表示されない (文字化けする) 場合がありますのご注意ください。 404 Not Found - 推奨してないっぽい Softbank - HTML,XHTML対応してるけど推奨はしていない?ただShift_JISの場合、FORMからの絵文字の送信が怪しい挙動をするのでUTF-8の方がちゃんとしてる Conten

    「メモ」携帯サイトをUTF-8で出力する方法とSEO評価 - komoriyaのはてなダイアリー
  • Perl Tips: Unicode 文字列: blog.bulknews.net

    Perl Tips: Unicode 文字列 Perl 5.6 以降では、文字列に Unicode フラグというのがつきます。 XML など文字コードを明示的に指定した場合などは Unicode 文字列として扱われ、length などが文字セマンティクスで動作します。 ある変数に Unicode フラグがたっているかどうかは、Devel::Peek モジュールでわかります。 use Devel::Peek; Dump $s ここで問題になるのが、文字列連結での自動アップグレード問題といわれるもので、内部的に Unicode フラグがたっている文字列と、そうでない文字列を連結すると、自動的にそうでないほうが Unicode にアップグレードされます。ここが文字化けの原因になります。 1. テンプレートを UTF-8 で記述し、Template-Toolkit で読み込み 2. DB は My

  • #perl - utf8::decode()ではなくEncode::decode_utf8()を使うべき理由 : 404 Blog Not Found

    2009年09月13日13:00 カテゴリLightweight Languages #perl - utf8::decode()ではなくEncode::decode_utf8()を使うべき理由 駄目です。 [を] Perl の utf8 まわりのおまじない 最近良く使うおまじない、というかイディオム。 utf8::decode($text) unless utf8::is_utf8($text); こういう場合は、Encode::decode_utf8()でないと。 以下をごらんください。 #!/usr/bin/perl use strict; use warnings; use Encode; use Devel::Peek; for my $bytes ( "\x2F", "\xC0\xAF", "\xE0\x80\xAF", "\xF0\x80\x80\xAF" ) { my $u

    #perl - utf8::decode()ではなくEncode::decode_utf8()を使うべき理由 : 404 Blog Not Found
    dealforest
    dealforest 2009/09/14
    utf8::decode()は、不正なUTF-8バイト列に対して何もしません。
  • Perl 5.8.x Unicode関連

    -> 趣旨と注意書き -> UTF8フラグ? -> UTF8フラグとPerlIOレイヤ -> UTF8フラグのついた文字列を記述する -> Wide character in print ... -> Encode -> utf8::* -> use utf8; -> use encoding; -> use UTF8 と use encoding -> JcodeからEncodeへ -> 情報源 <- モドル 趣旨と注意書き Perl 5.8.x のUnicode 関連です。 正直、5.8.x は、ネタでしか使ってなかったので(ぉ、ちゃんといじったことがありませんでした。 使ってみると、よくわかんなくなったので、ちょっとまとめてみました。 今でもあんまりわかってないかもしれないので、内容は無保証です。 突っ込み歓迎。 Jcode、Encodeのメンテナの弾さんから、ご指摘いただいたので、

  • 文字列を print すると「Wide character in print at」と出力されて困った - BigFatCatのブログ

    以下のプログラム(参考:作って学ぶ、今どきのWebサービス: 第2回 RSSフィードの料理はLWPとXML::RSSにおまかせ)を実行したら、「Wide character in print at」というメッセージが print を実行する度に出力されてしまった。 #!/usr/local/bin/perl # http://www.ibm.com/developerworks/jp/webservices/library/itm-ws2-rss/ use strict; use Encode; use LWP::Simple; use XML::RSS; my $url = shift; my $document = LWP::Simple::get($url) or die "cannot get content from $url"; my $rss = XML::RSS->new;

    文字列を print すると「Wide character in print at」と出力されて困った - BigFatCatのブログ
    dealforest
    dealforest 2009/07/17
    「UTF-8フラグが付いた文字列をprintしようとしている」ことが問題だったらしい。
  • URIモジュールにutf8フラグつきの文字列を食わせたらquery_formのエンコードが化けたでござるの巻 - とあるモバイル系エンジニアの日々

    タイトル長い。っていうかそのまんまです。 #!/usr/bin/perl use strict; use warnings; use URI; my $s = 'http://example.com/?q=%82%e2%82%e9%95v%82%c5%8aw%82%d4'; utf8::upgrade($s); my $uri = URI->new($s); my %qf = $uri->query_form; $qf{flag} = 'ON'; $uri->query_form( %qf ); my $uri_str = $uri->as_string; これ、一見すると$uri_strは http://example.com/?q=%82%e2%82%e9%95v%82%c5%8aw%82%d4&flag=ONになりそうなんですが、実際には http://example.com/?q=

    URIモジュールにutf8フラグつきの文字列を食わせたらquery_formのエンコードが化けたでござるの巻 - とあるモバイル系エンジニアの日々
    dealforest
    dealforest 2009/07/15
    [xml::libxml]
  • bayashi.jp

  • perl - use utf8; #って何だ? : 404 Blog Not Found

    2009年06月15日07:00 カテゴリLightweight Languages perl - use utf8; #って何だ? id:otsuneに建設予定フラグがたてられていたので。 冬通りに消え行く制服ガールは、夢物語にリアルを求めない。 - subtech Perl の utf8 関係が未だ全く理解できない。わからないことがわからないので整理 use utf8はいつフラグをたてるか use utf8 しててもフラグたたないことがある…… これは、以下の実例を見ていただくのが一番よいだろう。 #!/usr/bin/perl use strict; use warnings; use utf8 (); sub check_flag{ my $str = shift; print qq("$str" ), utf8::is_utf8($str) ? 'is' : 'IS NOT',

    perl - use utf8; #って何だ? : 404 Blog Not Found
  • UTF8 フラグあれこれ - daily dayflower

    UTF8 フラグについてわかってるつもりだったんですが,utf8::is_utf8 considered harmful - Bulknews::Subtech - subtech を読んで混乱したので,自分なりにまとめてみました。間違いがありましたらご指摘よろしく。 まとめ スカラー変数の内部表象の状態を示すものとして UTF8 フラグというものがある スカラー変数は(リファレンス等は別として)下記のものを格納できる (A) 文字列(内部表象: UTF-8) (B) 文字列(内部表象: ISO-8859-1) (C) バイナリ列 純粋なバイナリストリーム(画像ファイル等)かもしれないし, UTF-8 octet stream かもしれないし, CP932 octet stream かもしれないし,etc, etc ... Perl は(後方互換性確保などの理由から)ISO-8859-1

    UTF8 フラグあれこれ - daily dayflower
    dealforest
    dealforest 2008/02/23
    utfフラグについて
  • UTF-8 エンコーディングの危険性 - WebOS Goodies

    的に、まともな国際化ライブラリを使っていれば、上記のような不正な文字コードはきちんと処理してくれるはずです。実際、 Opera, Firefox, IE ともに適切にエスケープしてくれました。また、 UCS に変換した後にエスケープ処理を行うことでも対処できるかもしれません。しかし、複数のモジュールで構成されるような規模の大きいアプリケーションでは、そのすべてが適切な処理を行っていると保証するのも、なかなか難しいかと思います。ここはやはり、すべての外部入力に含まれる不正なシーケンスを、水際で正規化するという処理を徹底するのが一番かと思います。 例えば Ruby の場合、不正な UTF-8 コードを検出する最も簡単な方法は、 String#unpack を使って UCS へ変換してみることです(昨日の記事への kazutanaka さんからのはてぶコメントにて、 iconv でも同様なこ

  • 1