UTF-8のネタってのがありまして…

yahooAff

【在庫状況:在庫有り】 デジカメなどの多くのUSBストレージデバイスとも併用できるUSBメディアプレイヤです。●型番:WDAVN00BJ●対応フォーマット MP3 WMA OGG WAV PCM LPCM ACC FLAC AIF AIFF MKA ドルビーデジタル●静止画 JPGE GIF TIF TIFF BMP PNG●動画 MPEG1/2/4 WMV9 AVI(MPEG4/Xvid/AVC) H264 MKV MOV(MPEG4/H264)●プレイリスト PLS M3U WPL●字幕 SRT(UTF-8)●外付けHDD対応フォーマット FAT32 NTFS HFS+(ジャーナル形式非対応)●接続 USB2.0●内蔵メモリ 無し●インターフェイス HDMI USB2.0 合成画像A/V●電源 100-240VAC 【セブン-イレブンで24時間受取りOK・送料0円!】 著者/訳者名:奥村晴彦/著  出版社名:技術評論社 発行年月:2007年01月 関連キーワード:ラテツク ツー イー ビブンシヨ サクセイ ニユウモン らてつく つー いー びぶんしよ さくせい にゆうもん、 オクムラ,ハルヒコ おくむら,はるひこ、 ギジユツ ヒヨウロンシヤ ギジユツヒヨウロンシヤ 1477 ぎじゆつ ひようろんしや ぎじゆつひようろんしや 1477  本や論文などを印刷・電子化するためのオープンソースソフトTEXの仲間、特にLATEXの最新版LATEX2ε、その日本語版pLATEX2ε、および関連ソフトについて、やさしく解説。 支持され続けて15年*。待望の改訂第4版いよいよ登場です!本書は、本や論文などを印刷・電子化するためのフリーソフト「LaTeX2e」および関連ソフトについて、やさしく解説したものです。前回の改訂以降、TeXの標準ディレクトリ構成が改定され、また日本語でもUTF-8に対応したものが登場しました

YouTube動画一覧

flicker 画像

PHOTO蔵 画像

アメブロ動画

DailyMotion画像

Utf-8

関連キーワード

文字化け  文字コード  変換  コード表  bom  unicode  FFFTP  teraterm pro  改行コード  改行  teraterm  休eei=  excel  符号化  相eei=  6x癪ei=  結婁eei=  Perl  半角カナ  euc  MySQL  コード一覧  文字コード表  エンコード  エディタ  PHP  shift-jis  html  sjis  日本語  

該当キーワードの検索推移

wikipediaでの検索結果

UTF-8
UTF-8(旧UTF-2)はISO/IEC 10646(UCS)とUnicodeで使える符号化方式。 正式名称は、ISO/IEC 10646では'UCS Transformation Format 8'、Unicodeでは'Unicode Translation Format-8'という。 両者はISO/IEC 10646とUnicodeのコード重複範囲で互換性がある。 2バイト目以降に'/'などのコードが現れないように工夫されていることから、'UTF-FSS'(File System Safe)ともいわれる。 RFCにも仕様がある。
データ交換方式、ファイル形式としては一般的にUTF-8が使われる傾向がある。 Linux等では、OSの標準文字エンコードとして使用される例も増えている。
当初は、Plan 9で用いるエンコードとしてベル研究所で考案された。

エンコード体系

ASCII文字と互換性を持たせるために、ASCIIと同じ部分は1バイト、その他の部分を2~6バイトで符号化する。4バイトのシーケンスでは21bit(0x1FFFFF)まで表現することができるが、Unicodeの範囲外となる17面以降を表すもの(U+10FFFFより大きなもの)は受け付けない。また5~6バイトの表現は、ISO/IEC 10646による定義とIETFによるかつての定義で、Unicodeの範囲外を符号化するためにのみ使用するが、Unicodeによる定義とIETFによる最新の定義では、5~6バイトの表現は不正なシーケンスである。
ビットパターンは以下のようになっている。 0xxxxxxx (00-7f) 7bit 110yyyyx 10xxxxxx (c0-df)(80-bf) 11bit 1110yyyy 10yxxxxx 10xxxxxx (e0-ef)(80-bf)(80-bf) 16bit 11110yyy 10yyxxxx 10xxxxxx 10xxxxxx (f0-f7)(80-bf)(80-bf)(80-bf) 21bit 111110yy 10yyyxxx 10xxxxxx 10xxxxxx 10xxxxxx (f8-fb)(80-bf)(80-bf)(80-bf)(80-bf) 26bit 1111110y 10yyyyxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx (fc-fd)(80-bf)(80-bf)(80-bf)(80-bf)(80-bf) 31bit Unicodeのコードポイントを2進表記したものを、上のビットパターンのx, yに右詰めに格納する。 最短のバイト数で符号化するため、yの部分には最低1回は1が出現する。 符号化されたバイト列は、バイトオーダーに関わらず左から順に出力する。 これにより4バイトで21bit、6バイトで31bitまで表現することができる。
1バイト目の上位ビットの1の個数でその文字のバイト数が判るようになっている。また、2バイト目以降は10で始まり、1バイト目と2バイト目以降では値の範囲が重ならないので、文字境界を確実に判定できる。
7バイト以上の文字は規定されないため、fe, ffは使用されない。このため、バイトオーダーマーク(BOM)にfeとffを使用するUTF-16が、UTF-8と混同されることはない。

特徴

メリット

  • バイトストリーム中の任意の位置から、その文字、前の文字、あるいは次の文字の先頭バイトを容易に判定することができる。
  • 文字列の検索を単なるバイト列の検索として行っても、文字境界と異なる個所でマッチしてしまうことがない。たとえばShift_JISで「¥」を検索すると「表」の2バイト目にマッチしたり、EUC-JPで「海」を検索すると「ここ」にマッチしたりするのと同様のことが起きない。このため、マルチバイト文字を意識せず、ISO 8859-1などの8bit文字向けに作られた膨大なプログラム資産を、比較的少ない修正で再利用できる。
    • 但し、他のUnicodeの符号化と同様に、単にバイト列の比較では文字列が同一か判断できない場合がある。詳細は、Unicodeの等価性及び正規化を参照のこと。
  • UTF-16UTF-32と異なり、バイト単位の入出力を行うため、バイトオーダーの影響が無い。
  • 31bitまで表現できるため、サロゲートペアを使用する必要がない。
  • ASCII文字が主体の文書であれば、ほとんどデータサイズを増やさずにUnicodeのメリットを享受できる。UTF-16やUTF-32では、データサイズはほぼ2倍、4倍となる。
  • 複数のUTF-8文字列を、単なる符号無し8bit整数の配列とみなして辞書順ソートした結果は、Unicodeのコードポイントの辞書順のソート結果(すなわちUTF-32に変換した後にソートした結果)と等しくなる。

デメリット

  • UTF-8による符号化では、漢字仮名などの表現に3バイトを要する。このように、東アジアの従来文字コードではマルチバイト符号を用いて1文字2バイトで表現されていたデータが、1.5倍かそれ以上のサイズとなる。同様に、ISO/IEC 8859-1では1バイトで表現できた非ASCIIのラテン文字 (ウムラウト付きの文字など) も2バイトとなるし、その他のISO/IEC 8859シリーズに属する文字符号ではデータ量がさらに増大しうる。
    • なお、1バイトが9ビットである処理系では、この問題をあまり発生させずに符号化できるはずである。このアイディアに基づいたジョークRFCがRFC4042 “UTF-9” として2005年4月1日に公開された。
  • 文字数とデータサイズが比例しないため、文字数を調べるには先頭から全データを読み取る必要がある。
  • 最短ではない符号やサロゲートペアなど、UTF-8の規格外だがチェックを行わないプログラムでは一見正常に扱われるバイト列が存在する。これらのバイト列を入力として受け入れてしまうと、プログラムが予期しない範囲のデータを生成するため、セキュリティ上の脅威となりうる。

サロゲートペアの扱い

UTF-16サロゲートペアで表されるBMP外の文字をUTF-8に変換するときは、まず4バイトのサロゲートペア(前半0xD800〜0xDBFF, 後半0xDC00〜0xDFFF)をU+10000からU+10FFFFまでの値にデコードしてからUTF-8に符号化しなければならない。サロゲートペアに使われるU+D800からU+DFFFまでの範囲を、UTF-8でそのまま符号化することは禁止されており、不正なシーケンスとみなされる。
サロゲートペアを残したままUTF-8と同等の符号化を行う規格は、CESU-8(Compatibility Encoding Scheme for UTF-16: 8-Bit)として別途定義されている。 これは、Oracle Databaseのバージョン8以前において、UTF-8文字は3バイトまでしか扱えなかったために便宜的に定義されている。4バイトのサロゲートペアは使用せず、代わりに6バイトのサロゲートペア(前半がED A0 80〜ED AF BF、後半が ED B0 80〜ED BF BF)で表現される。 なお、現在のOracle Databaseでは、CESU-8を「UTF8」として、「普通のUTF-8」を「AL32UTF8」として扱っているため注意を要する。
また、Javaの一部の内部実装で用いられているModified UTF-8も、サロゲートペアをそのまま残す仕様となっている。 但し、NULL文字をC0 80とエンコードする(これもUTF-8規格外)点で、CESU-8とも異なる実装となっている。

セキュリティ

UTF-8のエンコード体系には冗長性があり、同じ文字を符号化するのに複数の表現が考えられる。かつてはそのような表現も許容されていたが、ディレクトリトラバーサルなどの対策として行われる文字列検査を冗長な表現によりすり抜ける手法が知られるようになったため、現在の仕様では最も短いバイト数による表現以外は不正なUTF-8シーケンスとみなさなければならない。
また、ISO/IEC 10646の定義が5バイト以上の表現を許容していることにより、注意深さの足りない実装でエンコード時にバッファオーバーフローが発生する可能性も指摘されている。

日本語の文字とバイト数

1バイト
2バイト
3バイト
4バイト
5~6バイト
  • Unicodeの範囲外(どんな文字が登録されるかという計画も無い)

バイトオーダーマークについて

UTF-8で符号されたテキストデータはエンディアンに関わらず同じ内容になるので、UTF-8で符号化されていることが確定しているのならバイトオーダーマーク (英: Byte Order Mark。以下BOM) を付加する必要はない。しかし、一部のテキスト処理アプリケーション (エディタなど) では、作成したテキストデータの先頭にBOMを付加する (付加するかどうかを選択できるものもある)。付加する場合は、EF BB BF (16進。U+FEFFのUTF-8での表現) をデータの先頭に付加する。なお、BOMありの方をUTF-8、なしの方をUTF-8Nと呼ぶこともあるが、このような呼び分けは日本以外ではほとんど知られておらず、また公的規格などによる裏付けもない。このため、UTF-8という呼び名を使っていれば情報交換の相手が文書先頭にBOMがあると見なすと期待すべきではないし、いっぽう、UTF-8Nという呼び名は情報交換の際に用いるべきではない。
BOMを付加する目的は、その文書がUTF-8であることを確実に認識できるようにするためだと考えられる。 一方で、UTF-8のBOMを認識しない(単に8ビットスルーであるというだけの、正式にはUTF-8に対応していない)プログラムでは、BOMが余分なデータとみなされて問題となる場合もある。例えば、UNIX系OSにおける実行可能スクリプトは、ファイル先頭が「#!」から始まるとき、それに続く文字列をインタプリタのコマンドとして認識するが、現状の多くのシステムでは、BOMが存在するとこの機能が働かず実行できない。ただし、これはテキストエディタで編集可能とはいえ、あくまでも実行可能な“バイナリ形式”での事例であり、テキストファイルにおけるBOMの取り扱いとは別の問題である。
逆にBOMがないとUTF-8と認識できないプログラムも存在する (とくにASCII部以外の文字が少ない場合に誤認することが多い)。
プロトコルが常にUTF-8である事を強制しているものである場合はBOMを禁止するべきで、この場合ファイル先頭のBOMは "ZERO WIDTH NO-BREAK SPACE" と見なされる。逆にプロトコルがそれを保証しない場合BOMは禁止されずファイル先頭のそれはBOMと見なされる。

Mac OS XにおけるUTF-8について

一般的にUTF-8と呼ばれる場合は、ほとんどの場合NFCで正規化されたものを表す。 一方、Mac OS Xで使用されるファイルシステムでは、ファイル名をNFDにより正規化されたUTF-8で扱う。 このため、Mac OS Xに付属するiconvでは、NFDで正規化されたUTF-8をUTF-8-MACとして扱うことができる。
なお、Mac OS Xのシステムコールでは、ファイルにアクセスする際、通常のUTF-8で指定しても内部でUTF-8-MACに変換されるため、ユーザーやプログラマはこれを意識する必要は無い。 しかし、ファイルの一覧などを取得した場合、取得されるファイル名はUTF-8-MACとなる。 これで得られたファイル名を、そのまま他のシステムにコピーすると、一般的な方法ではアクセスできないファイルが作成されてしまう恐れがあるため、十分な配慮が必要となる。

関連項目

脚注

----------------------------------------------
出典:「フリー百科辞典ウィキペディア」(2009-01-01)
Text is available under GNU Free Documentation License.

ネットで人気のキーワード(2010年02月10日 19:24現在)

もっとランキングを見る
  1. 立松和平(319.1ポイント)
  2. 機動戦士ガンダム(200ポイント)
  3. 石川被告(125ポイント)
  4. ベッキー・クルーエル(120ポイント)
  5. 立松和平さん(105.5ポイント)
  6. スギ花粉(100ポイント)
  7. 結婚で変わる女(100ポイント)
  8. 次長課長(100ポイント)
  9. 泣かないと決めた日(90.4ポイント)
  10. 笑顔がごちそう ウチゴハン(83.3ポイント)

本日の当サイトランキング(2010年02月10日 19:24現在)

  1. 泣かないと決めた日(クリック数 77)
  2. テキサスバーガー(クリック数 72)
  3. 曲げられない女(クリック数 70)
  4. 朝青龍(クリック数 64)
  5. Georgia(クリック数 58)
  6. ハイチ地震(クリック数 57)
  7. 確定申告(クリック数 47)
  8. チョコレートスパークリング(クリック数 43)
  9. Chicago(クリック数 42)
  10. 仮面ライダーW(クリック数 42)

MicroAD

googleブログ検索で「UTF-8」を検索

yahooブログで「UTF-8」を検索

Valid HTML 4.01 Transitional

Valid CSS!

[Valid RSS] Suppoted by マッシュアップナビ
Special Thanks to お名前シール

Yesterday Access:カウンタ
Today Access :カウンタ
Total Access :カウンタ

Copyright ©2007 UTF-8のネタってのがありまして…