トップ回答者
ADの属性ってUNICODEでなくてもよいのでしょうか?

質問
回答
-
ちょっとよく理解できていないのですが -u をつけずにインポートした場合、
もとのテキストの文字コード(ASCIIならアスキー)で格納されるのでしょうか?
Windows の場合はUnicodeで格納されます。(Windows内部はUnicodeで動いています)
Default Active Directory Attributes in the Windows 2000 Schema
http://support.microsoft.com/kb/257218/Windows OSの内部格納状態とLDIFDEの動きを一緒くたにしないでください。また、"-u"の役割を誤解しないでください。
LDIFDEでエクスポートするときは、UTF-8形式でエクスポートされます。
LDIFDEはでは、8ビット文字はBASE64でエンコードすることになっています。これが-uです。
-uを付けると、UTF-8の1バイトエリアもエンコードするようです。UTF-8でエクスポートした場合、文字符号化の都合で、ASCII文字の場合、UTF-8との見分けは付かないかも(なんせ、1バイトで表現されます。)。Windowsの場合、インポートするときも、UTF-8として扱われます。
いちど、UTF-8について調べて見られることをお勧めします。
とりあえず、バイナリエディタで覗いてみるとわかりやすかと
ファイルの内容:aaa(aのASCIIコードは61)
testASCII.txt
61 61 61
testUTF8.txt
EF BB BF 61 61 61
※頭の「EF BB BF」は、ファイルがUTF-8形式で保存されていることを示す接頭語です。
testUnicode.txt
FF FE 61 00 61 00 61 00
【ご参考】
JIS X 0201 (1976) to Unicode 文字コード表
http://charset.7jp.net/jis0201.html -
>ADの属性ってUNICODEでなくてもきちんと動作するのでしょうか?
ADは基本Unicodeです。符号化方式にはUTF-8を使用します。
で、基本的にUTF-8ではアルファベットはそのまま同じ1バイトの文字なので、ASCIIと変わったようには見えません。以下余談
LDIF形式は、マルチバイトをBASE64でエンコードすることになっていますので、エンコードされている文字列を文字コード指定(UTF-8)でBASE64デコードすると元の漢字に戻ります。
エクスポート時は"-u"を付けると何でもかんでもBASE64でエンコードします(DNはなんとなく逆の動きに見えます)。
ただ、BASE64をデコードしてみればわかりますが、-u付けなくても日本語のデータはUTF-8とBASE64でエンコードして送られています。[データ変換ツール(BASE64, URLエンコード(URLデコード), HEX(16進ダンプ), MD5, SHA-1変換フォーム)]
http://hogehoge.tk/tool/
※エクスポートしたデータを上記サイトでデコードしてみると、何してるかよく分かると^^(とくに-uを付けたときとつけなかった時の日本語名なDNの動きとか気持ち悪くと仕方がありません。
AD間の場合-uをインポート/エクスポートともにつけなかった場合化けないこともあったりとか……(ADは基本なんでもUTF-8で投げてくるので……)
#日本語環境で利用されるのであれば"-u"をつけて合わせてくださいまし。
すべての返信
-
>ADの属性ってUNICODEでなくてもきちんと動作するのでしょうか?
ADは基本Unicodeです。符号化方式にはUTF-8を使用します。
で、基本的にUTF-8ではアルファベットはそのまま同じ1バイトの文字なので、ASCIIと変わったようには見えません。以下余談
LDIF形式は、マルチバイトをBASE64でエンコードすることになっていますので、エンコードされている文字列を文字コード指定(UTF-8)でBASE64デコードすると元の漢字に戻ります。
エクスポート時は"-u"を付けると何でもかんでもBASE64でエンコードします(DNはなんとなく逆の動きに見えます)。
ただ、BASE64をデコードしてみればわかりますが、-u付けなくても日本語のデータはUTF-8とBASE64でエンコードして送られています。[データ変換ツール(BASE64, URLエンコード(URLデコード), HEX(16進ダンプ), MD5, SHA-1変換フォーム)]
http://hogehoge.tk/tool/
※エクスポートしたデータを上記サイトでデコードしてみると、何してるかよく分かると^^(とくに-uを付けたときとつけなかった時の日本語名なDNの動きとか気持ち悪くと仕方がありません。
AD間の場合-uをインポート/エクスポートともにつけなかった場合化けないこともあったりとか……(ADは基本なんでもUTF-8で投げてくるので……)
#日本語環境で利用されるのであれば"-u"をつけて合わせてくださいまし。 -
ちょっとよく理解できていないのですが -u をつけずにインポートした場合、
もとのテキストの文字コード(ASCIIならアスキー)で格納されるのでしょうか?
Windows の場合はUnicodeで格納されます。(Windows内部はUnicodeで動いています)
Default Active Directory Attributes in the Windows 2000 Schema
http://support.microsoft.com/kb/257218/Windows OSの内部格納状態とLDIFDEの動きを一緒くたにしないでください。また、"-u"の役割を誤解しないでください。
LDIFDEでエクスポートするときは、UTF-8形式でエクスポートされます。
LDIFDEはでは、8ビット文字はBASE64でエンコードすることになっています。これが-uです。
-uを付けると、UTF-8の1バイトエリアもエンコードするようです。UTF-8でエクスポートした場合、文字符号化の都合で、ASCII文字の場合、UTF-8との見分けは付かないかも(なんせ、1バイトで表現されます。)。Windowsの場合、インポートするときも、UTF-8として扱われます。
いちど、UTF-8について調べて見られることをお勧めします。
とりあえず、バイナリエディタで覗いてみるとわかりやすかと
ファイルの内容:aaa(aのASCIIコードは61)
testASCII.txt
61 61 61
testUTF8.txt
EF BB BF 61 61 61
※頭の「EF BB BF」は、ファイルがUTF-8形式で保存されていることを示す接頭語です。
testUnicode.txt
FF FE 61 00 61 00 61 00
【ご参考】
JIS X 0201 (1976) to Unicode 文字コード表
http://charset.7jp.net/jis0201.html -
こんにちは。
フォーラム オペレーターの田中夢です。
Chuki さん
いつも参考になるアドバイスをありがとうございます。
miyagiken さん
ご質問を投稿されてからしばらく経過しましたが、その後 Chuki さんからの投稿をご覧になっていただけましたか?
こちらのご質問につきましては、Chuki さんからの投稿を参考にしていただけたのではないかと思われますので、勝手ながら私のほうで [回答としてマーク] とさせていただきすね。
今後とも、TechNet フォーラムをどうぞよろしくお願いいたします。
---------------------------------------------------------------------
日本マイクロソフト株式会社 フォーラム オペレーター 田中夢