Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
UnicodeのUTF-16エンコーディングではほとんどの文字(コードポイント)は2バイトで表現されるが、Unicodeに後から追加収録された文字の多くは4バイトで表現される。4バイト文字がうまく扱えないプログラムというのはわりとよくある。しかし世界中で広く使われるようになった絵文字がよりによって4バイト文字であるせいで、そのような文字が扱えない問題がよいペースで解決に向かいつつある。それについて少し説明してみようと思う。 Unicodeが80年代から90年代初頭にかけてデザインされたときの目標の一つは、Unicodeに含まれる文字数を65536個以内に収めることだった。現代の文章を実用的なレベルで表すためには、漢字などを含めてもそれだけの種類の文字があれば十分だと考えられたのだ。当然これは1文字を2バイトで表すことを念頭に置いていた。つまりコンピュータの揺籃期から当時に至るまで単純に英語
という2chのスレがかなり勉強になったのでまとめ。 少しでも有用だと思ったものは載せてあるので結構長いです。 Unicodeのような文字集合(符号化文字集合?)やUTF-8のようなエンコーディング方式に限らず色んな文字コードにまつわる話があります。 たびたび話が繰り替えされますがそれは確認ということで。 (元スレ) 追記:簡単にまとめました。 1 :デフォルトの名無しさん:2007/04/30(月) 20:02:37 ビッグインディアンとかなんとかかんとか 3 :デフォルトの名無しさん:2007/04/30(月) 20:05:48 また、頭の悪そうなスレが・・・ >>1 それは魚とマグロの違いを訊ねるようなもんだ。 4 :デフォルトの名無しさん:2007/04/30(月) 20:06:49 魚と鮪というよりは、魚と刺身の違いのような気がする。 5 :デフォルトの名無しさん:2007/04/
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',
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
2009年06月08日14:30 カテゴリLightweight Languages perl - use encoding; #は黒歴史 ぎゃあぁぁ length関数で文字列の長さを求める - perl初心者BLOG - Hatena::Group::Perl 日本語の文字数を正確に求めたい場合、use encodingを指定する use encoding;は、jperlなど、かつて存在したL10Nされたperl用に書かれたレガシースクリプトを、モダンperlで動かすときのためのおまじないです。こういう目的で利用すべきではありません。 このあたりのことは、以前 404 Blog Not Found:perl - no encoding; # whenever possible でも書いたのですが、大事なことなのでまた書きます。 スクリプトはUTF-8で書き、use utf8;する のがモ
2009年05月01日18:15 カテゴリTips tips - 十まで数える二千百一の方法 絶望した!誰も「笑」ってないことに絶望した! 斬新な数の数え方を考えた。 - NaokiTakahashiの日記 よく「正」って字を書いて数を数えるでしょ。一画ずつかいて、ひとつで5。 あれを「殺」って字にしたら一文字で10数えられるんじゃないかとさっき思いついた。十画だから。で、十数えた、じゃなかった笑った後に、気になったわけです。十画の字ってどれだけあるだろうか、と。 こんなにありました。 㑣㑥㑦㑧㑨㑩㑪㑫㑬㑭㒭㓐㓑㓒㓬㓭㓮㓯㓰㔝㔞㔟㕋㕌㕍㕖㖏㖐㖑㖒㖓㖔㖕㖖㖗㖘㖙㖚㖛㖜 㖝㖞㘣㘿㙀㙁㙂㙃㙄㙅㙆㛍㛎㛏㛐㛑㛒㛓㛔㛕㛖㛗㛘㛙㛚㛛㛜㛝㛞㛟㛡㛢㛣㛤㝂㝃㝗㝘㝙㝚 㝶㝸㞂㞗㟇㟈㟉㟊㟋㟌㟍㟎㟏㟐㟑㟒㟓㟔㟕㟖㠫㠬㡇㡈㢃㢄㢅㢆㢇㢸㢹㣢㣣㤟㤠㤣㤩㤪㤫㤯 㤱㤳㤴㤶㤷㤸㤹㤼㤽㦴㦵㦶㧬㧭㧱㧲㧴㧵㧶㧷㧸㩻㩼㪇㪈㪉㪰㪶㪾㪿㫅
タイトル長い。っていうかそのまんまです。 #!/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=
2009年01月16日17:30 カテゴリLightweight Languages perl - URI::Escape::XS 0.04 - URI Encode と Punycode の共存 URI::Escape::XS 0.04 を Release したのでお知らせします。 /lang/perl/URI-Escape-XS/trunk - CodeRepos::Share - Trac Dan Kogai / URI-Escape-XS - search.cpan.org (Wait till updated) きっかけは、これ。 はてなブックマーク - %E8%84%86%E5%BC%B1%E6%80%A7%E8%A8%BA%E6%96%AD.jp IDN、国際化ドメイン名は、 URI Encode ではなく Punycode で encode しなければならない。よって「脆弱
Googleによる絵文字標準化検討の話自体は大歓迎。 私も苦労してきたので。 けど、 News - 絵文字標準化 by Google -404 Blog Not Found- 「絵文字をどうするか」なんて、Unicode Consortium ではずっと前から議論してた。 ケータイ各社からのプロポーザルを待っていてさえいた。 で、やるのは結局 Google だ、と。 ドコモよ、AUよ、ソフトバンクよ。 貴様ら一体どこで油売ってたんだよ。あ、油じゃなくてケータイか。 ついこないだまで、「ガラパゴス特有の絵文字機能等、iPhoneに必要ない」という論調がまかり通っていたかと思えば(弾さんが言ってた、じゃないですよ)、状況が変わった途端こういう話が注目が集める。 なんだかなあ、と思う。 メタブクマでも誰かが書いてたけど、どれだけ自虐的なんだ。 別に見方を変えれば、日本独自の絵文字文化
メモ。 YAML::Syckの場合 use YAML::Syck(); my $file = 'data.yaml'; local $YAML::Syck::ImplicitUnicode = 1; my $data = YAML::Syck::LoadFile($file); $YAML::Syck::ImplicitUnicodeを使うことでデコードしながら読むことができる。 YAMLの場合 my $data = YAML::LoadFile($file); my $yaml = YAML::Dump($data); utf8::decode($yaml); $data = YAML::Load($yaml); YAML parser - Bulknews::Subtech - subtech miyagawaさんとこの記事でこう書かれてたんだけど、コレって普通にファイル読み込んだ方が
perluniadvice の前半部分を訳してみました。かなり意訳。 アドバイスと銘うってますが,中級者〜上級者向きです*1。 抄訳 perluniadvice Perl 付属のドキュメント perlunitut はもう読んだ?もしまだなら,そこから読み始めること :) perlunitut - perldoc.perl.org perlunifaq - perldoc.perl.org 以下にわたし(http://juerd.nl/)からのアドバイスの要約を挙げる。perlunitut には記述しなかった内容も含んでいる。 もしあなたが古い Perl を使っているのなら,最新版にアップグレードしよう もしあなたが古い CPAN モジュールを使っているのなら,最新版にアップグレードしよう 「外界」からやってくるデータはすべて decode() しよう 「外界」へ出力するデータはすべて en
Perl で日本語テキストを簡単に字種かたまりに分割できないかな、 と思い、perlunicode を読みながらサンプルプログラムを書いてみました。 対象テキストは UTF-8。 Perl で日本語テキストを字種分割 たつをさんは,m// でマッチングさせて分割させてますけど,これだと正規表現で網羅されてないトークンが失われてしまうと思います。 #!/usr/bin/perl use strict; use warnings; use utf8; binmode \*STDOUT, ':utf8'; my $src = <<"END_DATA"; zーあyxルーラでう、う9 10AB.DE「"GH'」★で漢字をカ・ナ食ったー!?MJD39\x{2466}。 END_DATA print $src, "\n"; my @cs = ( $src =~ m/ ( \p{M}+ | \p{N}+
#前に社内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日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く