2013年4月11日木曜日

文字コードとファイル容量

あるADのドメインコントローラからLDFファイルを抜いて、作業してLDFファイルを抜いた。

作業後、クラスや属性が増えているのは理解できる。

でも作業前の方がファイル容量が大きい。

なぜだ?と思ったら、LDFファイルの文字コードの違いだった。
正式にはBOM付きかどうか。
古い方がunicode+BOM、新しい方がSJIだった。

BOM?となったので調べた。

BOMについては、下記が詳しい
http://yaplog.jp/movieee/archive/124

要は、ビックエイディアンかリトルエイディアンかを識別するマーク符号
機械的にはCPUがバイトを並べる際の流儀

ビック~ 上位から下位へ流れる FE FF
リトル~ 下位から上位へ流れる FF FE


LDFファイルの形式については下記

http://itpro.nikkeibp.co.jp/article/COLUMN/20071212/289420/

通常は、日本語かどうかでエンコードされるかわかれる
http://www.atmarkit.co.jp/fwin2k/win2ktips/1431ldifex/ldifex.html#unicode

特にパスワードは「ダブルクォーテーションで囲んだ文字列」であり、UTF16リトルエイディアンになっているのでBASE64でエンコードすることが必須となっている


パスワードはユーザーアカウントがあれば必ず存在するので、LDFファイルには必ずあると考えてよい。

また、unicodeとは下記が詳しい
http://una.soragoto.net/topics/9.html

unicodeとは単なる文字列であり、その符号化方式(エンコード方式) として、UTF8・UTF16が存在する。
特徴
UTF8  ASCIIに対して上位互換
UTF16 WindowsXPの内部コード

そして、それが故に
Windowsのメモ帳などでは、
UTF8とunicode(UTF16)という表記がされている。

わかりずらいですな。

ちなみに昔はともかく今はUTF8でもUTF16でもBOMはつけられる。



0 件のコメント: