This domain may be for sale!
注: この記事は不正確な内容が含まれます。より正確な情報は HFS+のエンコーディングとUnicode正規化 で書きました。 「OS X のファイルシステムの文字コードは UTF-8-MAC である」という完全に間違った情報があちこちで見られるので、ここで注意を促しておこうと思います。 状況を整理します。OS X のファイルシステムは HFS+。ここでいう文字コードはテキストエンコーディング。したがって、主題を正確に表現すると「HFS+がファイル名などを管理するときのテキストエンコーディング」ということになりますが、実はこの主題の立て方そのものが間違っています。 彼らが問題にしているのは、ファイル名に結合文字列が混在してしまうことです。これは正規化形式の問題であって、エンコーディングの問題ではありません。ごちゃまぜに考えてはいけません。 UTF-8-MAC ってなに? UTF-8-MAC
SIS Lab>Blog>UTF-8-MACとは何か?〜Jekyllのカテゴリ(タグ)ページで濁点を含むページが表示されない〜 Macでファイル作成し、その後、rsyncでさくらVPS(CentOS)に転送しているのだが、濁点を含むファイルだけが表示されない。 例えば、「リファクタリング」など。 /blog/tag/リファクタリング/ 原因Mac OSXが作成した濁点、半濁点を含むファイル名を、CentOS側では異なる文字と認識しているのが原因みたい。 一般的に、UTF-8と表現される場合、NFC(Normalization Form C)でエンコードされたものを指す。 一方、Mac OSXでは、NFD(Normalization Form D)で符号化したUTF-8が用いられ、iconvではこれをUTF-8-MACと呼んでいる。 同じUTF-8でも、NFCとNFDという解釈の違いが存在す
レボナアート | システム/web/アプリ開発・web/ホームページ制作(埼玉県所沢市) 埼玉県所沢市(入間市・狭山市・川越市・飯能市、東京他)にて、システム開発・設計・構築、アプリ開発、ホームページ・web制作を行っているレボナアートの開発中心メモ・備忘録。
CSV ファイルを一行ずつ処理するプログラムを実行したら一行目のデータでエラーになったが、ログをみてもファイルをエディタや cat(1) でみてもおかしなところはない、ということがあって、 BOM かな?と思ったけど BOM つきかどうか確認するのに手間取ったので、次回(何年後だろう)のためにメモ。 BOM がついてるか確認する more(1) か less(1) で開いてみてファイル先頭に <U+FEFF> があったらビンゴ。 file(1) でも教えてもらえる。 Emacs でファイルを開いて BOM を確認する・表示させるのはやり方を見つけられなかった。 hexdump(1) でファイル先頭に? ef bb bf あるか見るのでももちろんよいが、普段からバイナリファイルのダンプを見慣れていないと見てもとっさに BOM つきであることがわからないので、一目見て明らかにおかしいとわかる
はじめに:「なぜ漢数字は数字順に並ばない!?」 先日、こんなツイートをしたところ、結構たくさんの人にリツイートされました。(執筆時点で50件以上) 「漢数字はソートしても数字順に並ばない」という事実を生まれて初めて知った。まさかのサプライズ。 pic.twitter.com/Eqx3ltIfHs— Junichi Ito (伊藤淳一) (@jnchito) 2014年11月27日 「なぜ漢数字は数字順に並ばないのか」という問いに対して、表面的な回答をするなら「数字順に並ばないのは、数字の大きさではなく文字コード順でソートされているから」ということになります。 いや、もちろんそれはわかってるんです。 問題は「そもそもなんで数字順に文字コードを振らなかったの!?」ということです。 感覚的には「一郎、二郎、三郎」って並んでほしいじゃないですか。でも、プログラム上でソートすると「一郎、三郎、二郎」
導入 機種依存文字と呼ばれる文字があります。 例えばWindowsでは、 大文字のローマ数字(ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ)、 小文字のローマ数字(ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ)、 丸囲み数字(①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳)、 丸囲み文字(㊤㊥㊦㊧㊨)、 カタカナ表記の単位(㍉㍍㌔㌘㌧㌦㍑㌫㌢)、 単位記号(㎝㎏㎡)、 複数のアルファベットを合成した文字(㏍℡№)、 元号(㍻㍼㍽㍾)、 会社名等で用いられる括弧囲み文字(㈱㈲㈹)等が機種依存文字と呼ばれています。 機種依存文字は一般的に、異機種間でデータの交換を行った場合、 例えばWindowsで作成したテキストファイルをMacintoshで表示した場合に文字化けしてしまうので、 これら異機種でデータ交換することを前提としたインターネットでは利用するべきではないと言われています。 しかし、これらは機種依存文字と呼ばれているものの、 その意味はあ
概要 BOM付きUTF-8のCSVファイルを出力してExcelで開けるようにする 詳細 BOM付きUTF-8のCSVファイルを出力してExcelで開けるようにします サンプル # encoding: utf-8 class File def self.insert_bom(input_filename, output_filename) src = File.read(input_filename) File.open(output_filename, "w:UTF-8") do |f| src = ' ' + src src.setbyte(0, 0xEF) src.setbyte(1, 0xBB) src.setbyte(2, 0xBF) f.print src end end end file = $*[0] exit unless File.exists? file File.in
BOM (Byte Order Mark) バイト・オーダー・マーク UnicodeのUTF-16などの16bit単位の文字エンコーディングスキームでは、8bit単位でデータを配列する際のエンディアンとして、ビッグエンディアンとリトルエンディアンの両方を許している。そのため、どちらのエンディアンで記述されたデータかを確実に判定するための特別なマークとなる符号として、BOM(Byte Order Mark)が用意されている。 またBOMは、あるテキストがUnicodeで記述されているかどうかを自動判定する手段として使用される場合もある。この目的に使用される場合は、エンディアンが存在するUTF-16だけでなく、エンディアンが存在しないUTF-8のテキストに付加される場合もある。 BOMは、必ずテキストの先頭に付加される。テキストの中間に置かれることはない。BOMの値は、U+ffefと定められて
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であることを明示するために付けることもあるようです。 で、エラー
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
Unicode のコードポイントを指定して文字を得たり、逆にある文字のコードポイントを調べたり、ということをする機会は結構多いと思います。 が、Ruby でそれをやる方法をぐぐってもあまり上位に情報が出てこないなー、と思ったので簡単にまとめておきます。 Unicode コードポイントとは そもそも Unicode コードポイントとは何か。 Unicode というのは世界中の文字が集められた文字集合であり、Unicode に収録されている文字には順番に番号が振られています。 この番号のことをコードポイントといいます。 あるコードポイントが指す文字を表現するときに "U+" という文字の後ろに 16 進数表記のコードポイントを書いて表すことがあります。 例えば、コードポイント 0x3041 が指す文字 (ひらがなの 「あ」) を U+3041 と書いて表します。 各文字とコードポイントの関係は
ユニコードにはいくつかの種類があり、最もよく使用されるのが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
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く