You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
C++0x からは UTF16 の文字列リテラル(u"...")とその型(char16_t)、UTF32 の文字列リテラル(U"...")とその型(char32_t)が入ります。 そして UTF8 の文字列リテラル(u8"...")も入ります。しかし UTF8 を表す型は入りません。u8"..." は char の配列を返します。 ある関数の引数が "..." と u8"..." のどちらで渡されたのかを区別する方法はありません。残念です。 まあ今更入れろなんて言ったところでどうせ無理だと思うので、諦めて何かうまい方法を探しましょうということで、適当に考えてみました。 struct char8_t { // いろいろ実装 }; const char8_t* u8(const char* str) { return reinterpret_cast<const char8_t*>(str);
■ 「東京Ruby会議05」でUnicode正規化の話を聴いてきた(えっ?) そういえばRegional RubyKaigiに参加するのは初めてだ。今までは「大RubyKaigiの実行委員がRegionalに参加して(ただでさえ少ない参加枠を狭めるのも)申しわけないなぁ」と思って遠慮していたんだけど、今年は予告通りRubyKaigi2011の実行委員からは外れたので、遠慮するこたぁないのだった。というわけで東京Ruby会議05に参加。 場所は渋谷、ECナビの8Fにある「Ajito」という……なんだろう、そのビルに入っている各社の共同スペースみたいな? 趣向を凝らしたいろんな部屋がある、会議&イベントスペースというか。渋谷にこんな小洒落たフロアを持ってるなんて、ネット企業うらやましい! 冒頭は高橋さんによる「Rubyの楽しさ」に関する講演(台本なし、スライドなしの1時間)で、その後、事前に設
C++ で文字コードを変換するプログラムを作成したので紹介します.以下に実装する関数 encode を用いれば std::string, std::wstring 間で文字コードを変換できます. 文字コードの変換には代表的なライブラリとして libiconv と ICU とありますが,主にライセンス上の理由により今回は ICU を用います. ICU による文字コード変換ついては「ICU 2.x : UnicodeString による文字コード変換」に非常に丁寧にまとめられているので,内部の動きについて知りたい方は是非ご覧下さい. それでは以下に私の実装を示します. encode.hpp #ifndef ENCODE_HPP_20100822 #define ENCODE_HPP_20100822 #if defined(_MSC_VER) && (_MSC_VER >= 1020) # p
一般的には推奨されないencodingプラグマ 前回取り上げたencodingプラグマは、簡単なjperl用のスクリプトを移植したい場合には便利ですが、perlunifaqというPerl付属のマニュアルにははっきり「Don't use it.」と書いてあるくらい、一般的には使えないプラグマと認識されています。 前回も見たように、encodingプラグマが対応しているのは、ソースコードに埋め込まれている文字列やそれに類する正規表現、そして標準入力からのデータを指定された文字コードからPerlの内部表現に変換し、標準出力へ出力する際には内部表現を指定された文字コードに変換することだけです。ほかのファイル入出力部分や、コマンドラインから受け取った引数、標準エラー出力などの変換は行わないので、ちょっと凝ったことをしようと思うと、結局「外から入ってきたものはデコード、外に出すものはエンコード」という
今更ネタが続く。 くりかえしdecode()とencode()する場合には、OOインターフェースを使った方が高速です。なぜなら(de|en)codeが文字コード名を解決する手間がなくなるからです。 404 Blog Not Found:perl - Encode 入門 と言われているのは知ってたけど実際は毎回 decode('euc-jp', $str) とかしてて実際どんくらい違うのかなーとふと思って use strict; use warnings; use Benchmark qw/:all/; use Encode qw/find_encoding encode decode/; my $euc = find_encoding('euc-jp'); my $utf = find_encoding('utf-8'); open my $fh, "<", "euc.txt"; my @
こんにちは!ラブプラスとときメモ4の狭間で揺れ動いているxaicronです!! 今日は日本でプログラムを書いていたら避けては通れない気がする、Encodeの話をしようと思います! はじめに まず、この記事を読む前に、Perlのバージョンの確認をしてください。以下のようにやればバージョンが表示されます。 % perl -v ここで、5.8.1より下の数字ができてきた方は、Perlのバージョンアップをしてください。5.8.1より下のバージョンでは、Perlの内部文字コードが安定していないので、いい感じになりません。できれば5.8.8以上のバージョンを使いましょう。 それから、文字コードってなによって人も適当にWikiとかで調べてから読んだ方がいいと思います!! Encode.pm Encodeは昔のjcode.plやJcode.pmに代わる、現在の文字コード処理のスタンダードModuleです。
全て 1.このサイトについて 2.作品DB開発/運用 3.ホームページ制作技術 4.Perl 5.C言語 / C++ 6.検索エンジン&SEO 7.サッカー 8.自分のこと 9.Linux 10.旅行 11.思ったこと 12.パソコン 13.Berkeley DB 14.その他技術系 15.企画 16.スマートフォン 17.鑑賞 18.皆声.jpニュース 19.インターネット業界 20.運用マニュアル(自分用) 21.技術系以外実用書 22.料理 23.ALEXA 24.アニメ 25.会計 26.漫画 27.設計書 28.色々サイト作成 29.サーバー 30.自分専用 31.生活 32.OP/ED/PV 33.ゲーム 34.DB整備 35.新規開始作品紹介 36.英語圏の話題 37.大道芸 38.映画 39.PHP 40.ダイエット 41.Mac 42.JavaScript 43.MySQ
何故かあたり前にならない文字エンコーディングバリデーション | yohgaki's blog ってあるように、いまいち文字コードの不正な判定による危険性ってのが分かってない。 SJISの問題は、(2/3)SQLインジェクションを根絶!セキュア開発の極意 - 第5回■注目される文字コードのセキュリティ問題:ITproの記事がわかりやすかった。 というか、やっぱりPHP使ってると誰でも一度は「なんじゃこの『¥』は?」って思うもんなんで。 なるほど、確かに↓の図のように「あるバイト」が2つの意味を持つっていう文字コード形態はやばいんだなと。 EUC-JPはそんなことはしないで、1つのバイトには1つの意味しか取らせない。 だけど、これでも文字化けが起こることがある。経験的には、「マルチバイトをXX文字で切り落としたい」とかやった場合。ちゃんと文字コードを判定してくれるPHPでいえばmb_subst
2009年08月05日00:30 カテゴリLightweight Languages Variable Byte Code と UTF-8、またはUTF-24が存在しないわけ 実は、これに非常に良く似た符号化を、我々は日々目にしています。 γ符号、δ符号、ゴロム符号による圧縮効果 - naoyaのはてなダイアリー 通常の整数は 32 ビットは 4 バイトの固定長によるバイナリ符号ですが、小さな数字がたくさん出現し、大きな数字はほとんど出現しないという確率分布のもとでは無駄なビットが目立ちます。 UTF-8です。 UTF-8は、0x0から0x10FFFFまでの整数を、以下のようにしてバイト列に変換します。 Range/Offset0123 0x00-0x7F0xxxxxxx 0x80-0x3FF110xxxxx10xxxxxx 0x400-0xFFFF1110xxxx10xxxxxx10xx
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
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',
2009年06月06日01:15 カテゴリLightweight Languages perl - で全角半角変換をモダンに行う 今ならLingua::JA::Regular::Unicodeが第一選択肢ですが、こういう方法もあるということで。 Perl で半角カナと全角カナの変換をする : Serendip - Webデザイン・プログラミング Perl を使って半角カタカナと全角カタカナの変換をするスクリプトを、標準モジュールの Encode.pm と Unicode::Japanese と Lingua::JA::Regular::Unicode を使ってそれぞれ変換スクリプトを書いてみる。 CORE Moduleのみを使うという縛りをかけています。 #!/usr/bin/perl use 5.008001; use strict; use warnings; use utf8; us
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;する のがモ
文字コードの標準化について日記を書いたのだが、内容がいまいちだったのでボツにして気を取り直してUnicodeについて一言いっておくことにする。先日、といっても昨年(2008年)の10月なんだけど、その中でちょと文字コードの標準化について話をしている。*1 もう1つ自分の経験としてあるのが、漢字の文字コードがあるんですけど、番号で言うとJIS X 0208とか0212とか規格の番号で皆言うわけなんですけど、実は1988年にその日本語の文字コードの改正の委員会にいたんですね。 その当時、私は 30歳ぐらいなんですけど、「富士通」とか「日立」とか「NEC」の部長さんぐらいの偉い人たちが来てて、私なんか外資系で且つ30前後のぺーぺーだから、全然格下なんですよ。 そういうところで議論の主軸を担ってるのは、「富士通」「日立」「NEC」「日本IBM」「東芝」「沖」、外資でいえば「ユニシス」とかの錚々たる
2009年03月03日19:00 カテゴリLightweight Languages perl - EncodeでXSSを防ぐ 良記事。 第7回■文字エンコーディングが生み出すぜい弱性を知る:ITpro だけど、問題点のみ具体例があって、対策にないのが片手落ちに感じられたので、その点を補足。 結論だけ言ってしまえば、Perlなら以下の原則を守るだけです。 404 Blog Not Found:perl - Encode 入門 すでにOSCONでもYAPCでも、あちこちそちこちでこの基本方針に関しては話したのですが、ここ 404 Blog Not Found でも改めて。 Perl で utf8 化けしたときにどうしたらいいか - TokuLog 改め だまってコードを書けよハゲ入り口で decode して、内部ではすべて flagged utf8 で扱い、出口で encode する。これが
今回はutf8について.詰め込むにも削るにもなかなか大変です.utf8関連という意味ではいろいろ書くことがありますが,ここではプラグマに絞って書きます 表紙/目次 use utf8; utf8というのは文字コードです.コンピュータ上での文字の表し方のひとつです.ブラウザを使っていればshift_jisとかeuc-jpという単語を見ることがあると思いますが,それの仲間です.どれも日本語も表現できる方法です というわけでこのuse utf8宣言(これもstrictやwarningsと同じプラグマ宣言です!)は,utf8でソースを書きますよ!という宣言なのです.いつもこんな感じになってしまいますが,この宣言をしておけばソースをutf8をとして扱えるようになるとわかっていれば(とりあえず)読む必要はないかもしれません ファイルをutf8で保存する utf8で日本語を表現しますが,ファイルに保存する
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 にしてたので,任意の文字列リテラルが
言選Webは東京大学情報基盤センター中川研究室で公開している 専門用語(キーワード)自動抽出サービスです。 このシステムは内部で、専門用語(キーワード)自動抽出Perlモジュール"TermExtract"を活用しています。 特に西欧言語版では英語だけではなく、フランス語、イタリア語などの用語抽出を行うことができます。 しかし、入力テキストがどの言語で書かれているか判定する仕組みをもたず、ユーザがその都度指定する必要がありました。 そこで、入力テキストがどの言語で書かれているか、自動判定する仕組みを新たに考えることになった次第です。 言語判定を行う方式を調べたところ、いくつかの手法があることがわかりました。 N-Gramモデルを用いたテキストの分類器を使う 各言語で頻出する単語や特徴的な単語があるかどうかで判定する アクセス先サイトのURLから国名を得る HTMLのMETAタグの記述を確認す
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く