日別アーカイブ: 2015年3月9日

Delphiで、サロゲート文字とIVSに対応

仕事で、名前を登録して使用するプログラムを作って使っています。

今までは、unicodeのBMPだけを使用してそれ以外は、外字で対処していたんですが、最近、サロゲート文字やIVSというものがあることに遅ればせながら気がつきました。昨年末に仕事場のパソコンがWindows8.1になってから、このことに気がつき、辻の1点しんにょうと2点しんにょうの2つをかき分けることが可能となりました。

しかし、私の自作のプログラムは、これに対応していず、基底文字の後に??がつくという不具合がでてしまいました。これは、length, copy 関数が正常に動作していないことに原因があることがわかったので、早速、インターネットでサロゲートとIVSについて検索してみましたが、深みにはまってしまいました。そして、何とか、関数を作り上げたものの、さらに結合文字というものがあることに気がつき、挫折と妥協をしかけましたが、エンバカエロのサイトにサンプルコードがあり、これを拝借することにより、ほぼ思う通りの動作が可能になりました。

続きを読む