Repl-Ace on .NET Repl-Ace on .NET Documents (Ver.1.0.4)


文字セットに関する注意

 「Repl-Ace on .NET」では、Windows でサポートしているコードページに従って、文字セットの処理を行います。

 ただし、使用の際は以下の制限事項等にご留意ください。

  1. 内部処理は Unicode(UTF-16LE) で行われる

     ファイルがいかなる文字セットであろうとも、一旦 UTF-16LE に変換し、変換処理や置換処理を行います

     基本的には問題ないですが、 UTF-16LE にマッピングできない文字が含まれた場合は、正常に処理できない場合があります。

     サロゲートペアに関しては、表示や置換は問題なく処理できますが、基本的に2文字として認識されてしまいます。この点については、今後の .NET Framework のバージョンアップによって解消される可能性もあります。

  2. 文字セット変換は Unicode(UTF-16LE) を経由する

     文字セットの変換は、一旦変換前の文字セットから Unicode(UTF-16LE) にマッピングし、それを変換後の文字セットにマッピングすることで行われます

     Shift-JIS と JIS、 JIS と EUC-JP、UTF-16LE と UTF16BE 等、直接変換する手段があるものに関してもそれは同様です。

     従って、 UTF-16LE にマッピングできない文字が含まれた場合は、正常に変換できない可能性があります。

     なお、強制的に変換しない場合は、 UTF-16LE にマッピングする時点でマップの妥当性をチェックする為、変換自体が行われないようになっています。

  3. バイナリ置換は OEM アメリカ合衆国 で代替的に行われる

     内部処理は前述のとおり、すべて UTF-16LE にマッピングした上で行われる為、「Repl-Ace on .NET」は基本的にバイナリ置換に対応していません

     ただし、文字セットに OEM アメリカ合衆国 を使用することで、代替的にバイナリ置換を実現できます

     その際、バイナリコード指定(基本的に16進数での指定)に ASCIIコードを用いてもマッチしない場合がある為、そのASCIIコードを UTF-16LE 上にマッピングした際のバイナリコード指定を使用する必要があります

     その作業を簡略化するため、ズームにASCIIのコードをUnicodeのコードに変換する機能を用意しています。

  4. 文字セットの判定には Mlang.dll が使用される

     文字セットの判定には、Internet Explorer の Mlang.dll が使用されます。

     Mlang.dll が何らかの理由で見つからない場合は、文字セット判定が利用できません。

     Mlang.dll による判定は、Unicode系では(特にBOM付ならば)かなりの精度で判定できますが、その他の文字セットに関しては、ファイルのサイズが小さかったり、判定に要する特定の文字が見つからなかったりした場合、判定を誤る可能性があります

     特に、Shift-JIS を誤って 西ヨーロッパ言語(windows) と判定する可能性は非常に高く、注意する必要があります。


トップへ


2008/11/19 wrote; by SirMiles

All rights reserved,Copyright ©SirMiles 2008-.