タグ

utf8に関するlapis25のブックマーク (26)

  • @ARGVにUTF8フラグをたてる - Practice of Programming

    @ARGVには、普通UTF8フラグはつきません。どうやってフラグをつけるのか調べてみました。 その後、ブックマークコメントを見て、モジュール探したら見つけましたんで、追加しました。 -C か環境変数でやる こちらで見つけました. 起動オプション-Cか環境変数PERL_UNICODEにAを与えてやります。 perl -CA -e 'print utf8::is_utf8($ARGV[0]);' あああ PERL_UNICODE=A perl -e 'print utf8::is_utf8($ARGV[0]);' あああ -CやPERL_UNICODEが取れる値は、perldoc perlrun にあります。以下、抜粋。 -C [number/list] The "-C" flag controls some Unicode of the Perl Unicode features. As o

    @ARGVにUTF8フラグをたてる - Practice of Programming
  • utf8 - ソースコード内に、UTF-8(か、UTF-EBCDIC)を有効-無効にするためのプラグマ

    名前¶ utf8 - ソースコード内に、UTF-8(か、UTF-EBCDIC)を有効/無効にするためのプラグマ 概要¶ use utf8; no utf8; $num_octets = utf8::upgrade($string); $success = utf8::downgrade($string[, FAIL_OK]); utf8::encode($string); utf8::decode($string); $flag = utf8::is_utf8(STRING); # since Perl 5.8.1 $flag = utf8::valid(STRING); 説明¶ The use utf8 pragma tells the Perl parser to allow UTF-8 in the program text in the current lexical scope

  • utf8::is_utf8 considered harmful - Bulknews::Subtech - subtech

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    utf8::is_utf8 considered harmful - Bulknews::Subtech - subtech
    lapis25
    lapis25 2009/02/13
  • 続: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

  • YAML と YAML::Syck - 僕ト云フ事@はてな出張版

    YAML.pm は Load 対象が flagged だと flagged になるけど、 YAML::Syck は Load 対象が flagged でも bytes になる use strict; use warnings; use utf8; use Test::More qw(no_plan); use Encode; use YAML; use YAML::Syck; my $yaml_flagged = <<__YAML__; hoge: foo: ばー fuga: ふが __YAML__ ok Encode::is_utf8($yaml_flagged), 'this is flagged'; my $dump_from_yaml = YAML::Load($yaml_flagged); my $dump_from_yamlsyck = YAML::Syck::Load($ya

    YAML と YAML::Syck - 僕ト云フ事@はてな出張版
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • Perl で utf8 化けしたときにどうしたらいいか - TokuLog 改メ tokuhirom’s blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • 404 Blog Not Found:perl - utf8::is_utf8("\x{ff}") == 0

    2008年02月18日10:00 カテゴリLightweight Languages perl - utf8::is_utf8("\x{ff}") == 0 ちょうどいい機会なので、Perl 5.8以降におけるutf8フラグの立ち方を。 unknownplace.org - 2008/02/17 - utf8::is_utf8 ということで、"\x{6751}\x{702c}\x{5927}\x{8f14}" などというData::Dumper表記でかならずしも utf-8フラグがたつわけじゃない。ということがいいたかったんだと思うのだけれど、 \x{UUUUUU}とutf8 flag まずはクイズです。以下がどう出力されるかを答えなさい。 sub pfrag{ print utf8::is_utf8($_[0]) ? 1 : 0, "\n" } pfrag "Hell\xC3, worl

    404 Blog Not Found:perl - utf8::is_utf8("\x{ff}") == 0
  • 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
  • Template-Toolkitでマルチバイトな話 - 日向夏特殊応援部隊

    先に言っておくと、hide-kさんのまとめが分かりやすいです。 http://blog.hide-k.net/archives/2007/03/catalyst_2.php 最もCatalystを使う際にと言う事ですが。 utf8フラグを立てないでTTを使う場合 ソース自身はutf8で書くんですけど、 #!/usr/bin/perl use strict; use warnings; use Carp::Clan; use Path::Class; use Template; my $base_dir = dir($ENV{HOME}, qw/tmp tt_test/); my $template = Template->new({ COMPILE_DIR => $base_dir->subdir('tt.cache')->stringify, COMPILE_EXT => 'c', })

    Template-Toolkitでマルチバイトな話 - 日向夏特殊応援部隊
  • KDDI/AUでutf-8のHTMLフォームから送られてくる絵文字コード - Bulknews::Subtech - subtech

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    KDDI/AUでutf-8のHTMLフォームから送られてくる絵文字コード - Bulknews::Subtech - subtech
  • perl - 文字列ばらしはsplit //, $strで : 404 Blog Not Found

    2007年11月27日13:30 カテゴリLightweight Languages perl - 文字列ばらしはsplit //, $strで うーん、ここがあきまへん。 [を] 転置インデックスによる検索システムを作ってみよう! 9 my @char = ($c =~ /([\x00-\x7f]|[\xC0-\xDF][\x80-\xBF]| 10 [\xE0-\xEF][\x80-\xBF]{2}| 11 [\xF0-\xF7][\x80-\xBF]{3})/gsx); 文字列をばらして(utf8の)文字一つ一つの配列にするには、バイト列に正規表現をかますのではなく、utf8文字列にしてからそれにsplit //をかますのが一番です。単にわかりやすいだけではなく、その方がずっと高速です。以下、Benchmark。 #!/usr/local/bin/perl use strict; u

    perl - 文字列ばらしはsplit //, $strで : 404 Blog Not Found
  • YappoLogs: encoding::sourceをperl5.8系で動かす

    encoding::sourceをperl5.8系で動かす ことの発端はmiyagawaさんの というわけで上記のような問題になやまされずにリテラルをソースに書くことが出来そう。5.9 からバックポートされたのかなぁ、と思ってソースをみると思いっきり use 5.9.5 が。5.10 のリリースがまたひとつ待ち遠しくなったなぁ。 から なんで5.9から? encoding:sourceのソースを見てみると5.10の新演算子//が使われていた。のでまずはdefined使いまくりでソースを書き換えたけど上手く動かない。よく見ると my $hinthash = (caller($level))[10]; なるコードがある、callerの戻り値のリストは10個しか無い筈なのに11個目を取ってる。 調べてみると、5.10からの仕様でperlpragmaなるドキュメントがある。 callerで指定した

  • perl - no encoding; # whenever possible : 404 Blog Not Found

    2007年06月22日19:15 カテゴリiTech perl - no encoding; # whenever possible うーん、これ、かなり5.8 portersの想定の範囲外の使われ方だったのですね。 Time to ditch encoding.pm: blog.bulknews.net Perl でソースコードにマルチバイトなリテラルを埋め込む場合には encoding プラグマを使うのが定石でしたが、 元々、encodingプラグマは、JPerlなど、L10Nなperlを発展的に解消させる、あるいは成仏させるためのプラグマ。5.7当初は$^ENCODING直接操作させないためのものでしたが、これを工夫すれば、L10N perlの成仏にも使えるという指摘を私がして、実験的にcharsetというpragma moduleを書いたのですが、5.8のpumpkingであるjh

    perl - no encoding; # whenever possible : 404 Blog Not Found
  • Time to ditch encoding.pm: blog.bulknews.net

    Time to ditch encoding.pm Perl でソースコードにマルチバイトなリテラルを埋め込む場合には encoding プラグマを使うのが定石でしたが、 use encoding 'utf-8'; my $name = "宮川達彦"; こうすると STDIO まで utf-8 でエンコード・デコードされるという問題があり、また encoding.pm はファイルスコープで動くのでレキシカルに一部分だけバイト列として扱いたい(という需要があるかどうかは微妙ですが)というときにうまくいかず、イマイチ encoding プラグマを全面採用できず、decode() を使ったり \x{XXXX} で書いたりってことが結構ありました。 が、Juerd と RGARCIA が encoding::source と encoding::stdio (もとは encoding::split

  • UTF-8関連ドキュメント - Practice of Programming

    最近、PerlUTF-8関連が話題(宮川さん、Danさん、Yappoさん)だったので。 宮川さんの内容に関しては、UTF-8に限っては、use utf8 で、STDIO、STDOUTは影響しないので、問題ないんじゃないのかなぁとは思いますが。 #!/usr/bin/perl use utf8; print "あいうえお"; であれば、ちゃんと"Wide character in print at ..."が出ます。 逆に、use utf8 で、STDIO、STDOUTで、デコードする場合は、 #!/usr/bin/perl use utf8; use open ":utf8"; use open ":std"; print "あいうえお"; とします。これなら、警告は出ません。 で、題というか、手前味噌ですが、UTF-8については以前書いたのがあるので、よろしければ(メンテしてないんで

    UTF-8関連ドキュメント - Practice of Programming
  • hide-k.net#blog: Catalystでマルチバイトを取り扱うときのまとめ

    #前に社内wikiに書いておいたのを公開してみるテスト。 Catalystでマルチバイトを扱う機会があるのは主に ユーザーがフォームで入力する値 ($c->req->param()) データベースからの入出力 (DBIx::Class) それ以外の文字列の評価 View::TTによる出力の生成 FillInFormによるフォームの埋め込み HTTPレスポンス です。 ここでは以下の条件でまとめてみました。 文字コードはUTF8に統一 データベースにはmysqlを使用 下準備 テンプレート、perlのコードは全てUTF8で書きます。 mysqlの文字コードの指定は/etc/my.cnfに [mysqld] default-character-set = utf8 skip-character-set-client-handshake [mysql] default-character-set

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • subtech - Bulknews::Subtech - Fix dodgy utf-8 bytes

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    subtech - Bulknews::Subtech - Fix dodgy utf-8 bytes
  • 文字化け/MySQL4.1系UTF-8の場合

    <?php require_once'DB.php'; $username = "dbuser"; $password = "dbpass"; $host     = "dbhost"; $database = "dbname"; $db = DB::connect("mysql://$username:$password@$host/$database"); if (DB::isError( $db )) { die($db->getMessage()); } // SET NAMES クエリの発行 $sql = "SET NAMES utf8"; $result = $db->query($sql); ?>