タグ

unicodeとutf-8に関するtakaesuのブックマーク (6)

  • 漢数字が数字順にソートされない理由を調べてみた - give IT a try

    はじめに:「なぜ漢数字は数字順に並ばない!?」 先日、こんなツイートをしたところ、結構たくさんの人にリツイートされました。(執筆時点で50件以上) 「漢数字はソートしても数字順に並ばない」という事実を生まれて初めて知った。まさかのサプライズ。 pic.twitter.com/Eqx3ltIfHs— Junichi Ito (伊藤淳一) (@jnchito) 2014年11月27日 「なぜ漢数字は数字順に並ばないのか」という問いに対して、表面的な回答をするなら「数字順に並ばないのは、数字の大きさではなく文字コード順でソートされているから」ということになります。 いや、もちろんそれはわかってるんです。 問題は「そもそもなんで数字順に文字コードを振らなかったの!?」ということです。 感覚的には「一郎、二郎、三郎」って並んでほしいじゃないですか。でも、プログラム上でソートすると「一郎、三郎、二郎」

    漢数字が数字順にソートされない理由を調べてみた - give IT a try
    takaesu
    takaesu 2015/04/14
    ソート順
  • 機種依存文字とUnicode - WebStudio

    導入 機種依存文字と呼ばれる文字があります。 例えばWindowsでは、 大文字のローマ数字(ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ)、 小文字のローマ数字(ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ)、 丸囲み数字(①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳)、 丸囲み文字(㊤㊥㊦㊧㊨)、 カタカナ表記の単位(㍉㍍㌔㌘㌧㌦㍑㌫㌢)、 単位記号(㎝㎏㎡)、 複数のアルファベットを合成した文字(㏍℡№)、 元号(㍻㍼㍽㍾)、 会社名等で用いられる括弧囲み文字(㈱㈲㈹)等が機種依存文字と呼ばれています。 機種依存文字は一般的に、異機種間でデータの交換を行った場合、 例えばWindowsで作成したテキストファイルをMacintoshで表示した場合に文字化けしてしまうので、 これら異機種でデータ交換することを前提としたインターネットでは利用するべきではないと言われています。 しかし、これらは機種依存文字と呼ばれているものの、 その意味はあ

  • ruby1.9でBOM付きutf-8のファイルの内容をShift-JISに変換する

    utf-8のファイルの中身をShift-JISに変更しようと思ったらエラーが出たのです。 以下のような感じを実行しようとしたら、 aaa = open("aaa.csv").read p aaa.encode("cp932") 以下のようなエラーが出てしまったのです。 in `encode': U+FEFF from UTF-8 to Windows-31J (Encoding::UndefinedConversionError) どうやら変更しようとしたファイルは、もBOM付きutf-8というものだったようです。 ちなみにBOMとは、バイト順マーク(Byte Order Mark)というもののようで、文書ファイルの先頭に付ける EF BB BF という3バイトのバイナリデータのことのようです。ファイルの文字コードがUTF-8であることを明示するために付けることもあるようです。 で、エラー

    takaesu
    takaesu 2015/02/11
    Bomを削除する方法
  • UTF-8のBOMの削除でハマる

    cles::blog 平常心是道 blogs: cles::blog NP_cles() « bashで多重起動を防止する(その2) :: DoS 攻撃の判断基準を IPA が策定へ » 2010/11/29 UTF-8のBOMの削除でハマる  java  ruby  charset  regex 257 2へぇ XalanでXMLをXSL変換するプログラムを書いたら、そのうちの1つのXMLが下記のエラーを吐いて変換できなくてハマってしまいました。 Caused by: javax.xml.transform.TransformerException: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: An invalid XML character (Unicode: 0xfffe) was found in t

    UTF-8のBOMの削除でハマる
  • Ruby にて文字と Unicode コードポイントの相互変換を行う - vivid memo

    Unicode のコードポイントを指定して文字を得たり、逆にある文字のコードポイントを調べたり、ということをする機会は結構多いと思います。 が、Ruby でそれをやる方法をぐぐってもあまり上位に情報が出てこないなー、と思ったので簡単にまとめておきます。 Unicode コードポイントとは そもそも Unicode コードポイントとは何か。 Unicode というのは世界中の文字が集められた文字集合であり、Unicode に収録されている文字には順番に番号が振られています。 この番号のことをコードポイントといいます。 あるコードポイントが指す文字を表現するときに "U+" という文字の後ろに 16 進数表記のコードポイントを書いて表すことがあります。 例えば、コードポイント 0x3041 が指す文字 (ひらがなの 「あ」) を U+3041 と書いて表します。 各文字とコードポイントの関係は

    Ruby にて文字と Unicode コードポイントの相互変換を行う - vivid memo
    takaesu
    takaesu 2014/06/25
    コードポイントの解説など含め、まとめられていてとてもわかりやすい
  • 文字コード表(Unicode UTF-8 UTF-16) [7000/21420] - [技術資料 + 技術資料] ぺんたん info

    ユニコードにはいくつかの種類があり、最もよく使用されるのがUTF-8とUTF-16です。 UTF-8の日語で使用されるものは、半角文字は1バイト、全角文字は3バイト(一部2バイト)で表されます。 UTF-16の日語で使用されるものは、半角文字も全角文字も2バイトで表されます。 UTF-8は、全角文字が3バイトで表記されるため、他のコードで記載したファイルに比べ、容量が大きくなります。 このページにある全角文字は、21420文字です。 Unicodeは漢字を画数の少ない『一』から、画数順になっているのに対し、 それ以外の文字コードは50音順の『亜』から始まっています。 UTC(Unicode Technical Committee)の定義したUnicode文字のブロックの範囲は以下です。 しかし漢字の中には『F9xx』『FAxx』のものもわずかにあります。 文字の種類ブロックの範囲(16

  • 1