"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
こんにちは、hachi8833です。 少し前に、babaさんから「Rubyの内部文字コードはUTF-8じゃないよ」とツッコミがありました。 (追記: 上は会話の途中から切り取りましたのでご了承ください) いきなりの展開にくらくらきましたが、babaさんはさらにたたみかけます。 こうしたことはとっくにご存じの方も多いと思いますが、「Rubyといえば2.0以来UTF-8完全対応なんじゃないの」と勝手に思い込んでた私は脳に掌底を食らったような思いです。ああ、でもこういうことがあるから面白い。 ⚓ プログラミング言語と内部文字コードの関係 まず最初に押さえておきたい点です。プログラミング言語で文字コードに関連する部分は、「文字列」「正規表現」「入出力」「コード中の文字リテラル(""の中など)」「コード中の文字リテラル以外の要素(変数名など)」「ファイル名」などが中心になります。そして文字列に関連し
9. 参考) 確かめかた (Windows の場合) • 確かめたい文字をコピーします。 • WordPad を起動し、コピーした文字を貼り付けます。 • 確かめたい文字を一文字選択し、ALT + X を押します。 • コード (UCS-4) が表示されます。 • U+301C が波ダッシュ • U+FF5E が全角チルダ 10. 基礎知識1) チルダとは何か? • こういうやつらしい。 ÃÕÑ • 鼻音に関する音をあらわす、ダイアクリティカルマークの一種 • ダイアクリティカルマークってこんなやつら (よくしらない) À Á Â Ä Å Ă Ą Ā http://ja.wikipedia.org/wiki/%E3%83%80%E3%82%A4%E3%82%A2%E3%82%AF%E3%83%AA%E3%83 %86%E3%82%A3%E3%82%AB%E3%83%AB%E3%83%9E%
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
VimやRubyMine等のエディタやIDEで新しくファイルを作成した時にマジックコメントを付加することはできるが、既存のファイルに対して適用することができないので別途手段を講じる必要に強くかられた。 有り体に言うとRailsのジェネレータが作成したファイルに日本語を含めたときにエラーになるという状況を繰り返すのにそろそろ飽きてきたという。 そこでまず自作しようとディレクトリを切ったところで、いやいや誰か作ってるのではないかと思い当たり、検索してみると案の定見つかった。 magic_commenter magic_encoding 両方ともコマンドラインツールとして使用する。コマンドを打つとそのディレクトリ以下のRubyファイルを検索してマジックコメントを付加してくれる。 まず最初にmagic_commenterを試してみたが、こちらはマルチバイト文字列が含まれているファイルにしかマジック
『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日本 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直
Mac でも快適に vim7 が使えるようになり,vim7 からは unicode サポートが改善されているとのことなので,これを機に vim のデフォルト文字コードを UTF-8 にしてみた. vim の文字コード設定は少し複雑で,たまに間違って解説しているページも見かけるので,以下にまとめてみよう. まず文字コード設定に関係するオプションは, 'encoding' (短縮名 'enc') 'fileencoding' (短縮名 'fenc') 'fileencodings' (短縮名 'fencs') の3つ.fenc と fencs は名前が紛らわしすぎるので注意. vim は 'enc' で指定された文字コードをデフォルトとし,ファイルを開く時に 'fencs' で指定された文字コードから順番に 'enc' の文字コードへ変換を試み,成功したところでやめる,全部失敗したら変換せずに
「プログラマのための文字コード技術入門」を読んで自分なりに理解した点をザックリとまとめてみる。 それほど正確性を求めて書いているわけではないので、間違ってる可能性大です。 間違いなどあればコメントなど頂けるとありがたいです。 それぞれの文字コードはどう違うのか? 日本語の文字コードは大きく以下の2つに分けられる JIS X 0208 文字集合をベースにしたもの Unicode文字集合をベースにしたもの JIS X 0208 文字集合をベースにした文字コードには、EUC-JP, Shift_JIS, ISO-2022-JP がある。 Unicode文字集合をベースにした文字コードには、UTF-8, UTF-16 などがある。 上で挙げた「文字コード」とは正確には「エンコーディング(文字符号化方式)」の事を指す。 文字符号化方式 文字集合って? 読んでそのまんま”文字の種類の集まり”。「キャラ
前回は、WindowsにおいてWideCharToMultiByte APIを使用してUnicodeからShift_JISやISO-8859-1へ変換した場合に、WC_NO_BEST_FIT_CHARSというフラグを指定しなかった場合は「似ている文字への変換」が発生するため、セキュリティ上の問題が発生する可能性がある、という説明をしました。 今回は、実際にUnicodeから他の文字コードへの変換が、具体的に脆弱性を引き起こした例をいくつか紹介します。 電子メールの添付ファイル 電子メールの添付ファイル名には自由にUnicodeの文字が指定できますが、いくつかのメールクライアントにおいては添付ファイル名をUnicodeではなくShift_JISとして扱うために、問題が発生していました。 JVN#89344424: 複数のメールクライアントソフトにおける、添付ファイルによりメールクライアントソ
文字コードが引き起こす問題点は、これまで説明したような比較の一致・不一致といったソフトウェアの処理上のものだけでなく、人間に対する視覚的な効果という点でも強く影響を与え、攻撃者にとっての強力な道具となることがあります。 今回および次回で、そのような文字コードが引き起こす視覚的な問題点を紹介します。 視覚的に似た文字 見かけのよく似た文字は、フィッシングなどによく利用されます。典型的な例としては、アルファベット小文字のl(エル)と数字の1などがあります。たとえば、http://bank1.example.jp/ というURLのオンラインバンクがあったとすると、攻撃者は http://bankl.example.jp/ というURLを使ってフィッシングを企むということは容易に想像できると思います。 もちろん、収録している文字数が増えれば増えるだけ、このように見かけのよく似た文字が存在する率も高
文字コードが引き起こすセキュリティ上の問題として、もっとも興味深いもののひとつである、Unicodeから他の文字コードへの「多対一の変換」で引き起こされる問題点について、今回と次回で説明します。 ご存じのとおり、Unicodeには非常に多数の文字が収録されていますが(現在最新版のUnicode 5.1.0では100,713文字が収録されているそうです)、Unicodeから他の文字コードへの変換においては、互換性や可読性の維持のためか、複数のUnicodeの文字が他の文字コードでは単一の文字に変換されることがあります。 この「多対一」の変換が、開発者も想定していなかったような問題を引き起こす原因となることが多々あります。 具体的な例として、Windows上でのUnicodeからの変換について説明します。 Windows上でのUnicodeからShift_JISへの変換 Windows上で
現在JpmobileとMobile on Railsを使って携帯サイト構築の勉強中。 で、携帯はShift_JISの世界で、RailsはUTF-8の世界なので、文字コード変換が必要になったので勉強した。 Rubyの文字コード変換には、KconvとNKFというのがあるらしい。 Kconvは文字コードを自動判定してくれるらしいが、自動でいろいろやる部分が逆に失敗したりするらしいので、文字コードが分かってるときにはNKFを使う方が良い。 ということで、Jpmobileのページにあるto_sjisメソッドはKconvを使ってるが、こいつをNKFを使うように変更した。 $RAILS_ROOT/app/controllers/application_controller.rb内に以下のメソッドを定義すれば良い。 これで、携帯から送られて来た全フォームのパラメータがUTF-8に変換され、携帯へのHTML
前回に引き続き、UTF-7によるクロスサイトスクリプティング(XSS)について説明していきます。 UTF-7によるXSSは、攻撃対象のコンテンツの文字エンコーディングが不明瞭な場合に、そのコンテンツを被害者のブラウザ(Internet Explorer)で開いたときに、そのコンテンツの文字エンコーディングがUTF-7であるとIEに誤認させ、「+ADw-script+AD4-」のようなUTF-7の文字列が有効なHTML要素として認識されるために発生します。 そして、「文字エンコーディングが不明瞭」な具体的な状況として、以下のような条件のいずれかに該当するということを前回説明しました。 レスポンスヘッダ、meta要素のどちらでもcharsetが指定されていない charsetにIEが解釈できないエンコーディング名が指定されている meta要素でcharsetを指定しているときに、meta要
今時Shift_JISでプログラミングするバカな奴はいないだろうけど折角まとめたので公開 2バイト目がアスキーコードど丸被りしているものを列挙する@[\]^_`{|}~405B5C5D5E5F607B7C7D7E81 ー―‐/\??+??±×82・・・・・・A・・・・83ァゼソゾタダチボポマミ84АЪЫЬЭЮЯклмн85・・・・・・・・・・・86・・・・・・・・・・・87????????・????・・・??88・・・・・・・・・・・89院閏噂云運雲荏閲榎厭円8A魁骸浬馨蛙垣柿顎掛笠樫8B機擬欺犠疑祇義宮弓急救8C掘啓圭珪型契形鶏芸迎鯨8D后梗構江洪浩港砿鋼閤降8E察纂蚕讃賛酸餐施旨枝止8F宗充十従戎柔汁旬楯殉淳90拭深申疹真神秦須酢図厨91繊措曾曽楚狙疏捜掃挿掻92叩端箪綻耽胆蛋畜竹筑蓄93邸甜貼転顛点伝怒倒党冬94如納能脳膿農覗倍培媒梅95鼻票表評豹廟描府怖扶敷96法房暴望某棒冒本翻凡
コンピュータで文字を取り扱う際,文字コードについて知っておく必要があります。特に日本では複数の文字コードが混在して使われる上,プラットフォームによって取り扱う文字の種類も異なることから,状況が複雑になっています。本記事では文字を正しく取り扱うための基礎知識について簡単に紹介します。 コンピュータはすべてのデータを数値として取り扱います。文字を取り扱うときも,数値に対応づけて処理します。 例えば,「ようこそITpro」というテキスト・データをWindows XPのメモ帳で作成し,ファイルに保存します。そのファイルをバイナリ・エディタで開くと写真1のような数値が並んでいることが分かります。各文字と数値は表1のように対応づけられています。
* LFはNL、FFはNPと呼ばれることもある。 * 赤字は制御文字、SPは空白文字(スペース)、黒字と緑字は図形文字。 * 緑字はISO 646で文字の変更が認められ、日本ではバックスラッシュが円記号になっている。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く