Pythonistas、
Null で終了する大量の UNICODE UTF-16 でエンコードされた C 文字列を Python アプリケーションに渡す Python 拡張機能を C で作成しようとしています。私の C ライブラリの UNICODE 文字列は、常に 16 ビットであることが保証されています。wchar_t のサイズが異なる可能性があるため、LINUX の C ライブラリで wchar_t を使用していません。
多くの関数 (PyUnicode_AsUTF8String、PyString_FromStringAndSize、PyString_FromString など) を見つけましたが、これらの関数はすべて 8 ビットの文字/文字列表現用に設計されています。
Python のドキュメント (http://docs.python.org/howto/unicode.html) には次のように書かれています。
「内部では、Python は、Python インタープリターがどのようにコンパイルされたかに応じて、Unicode 文字列を 16 ビットまたは 32 ビットの整数として表します。」
Python インタープリターが「ボンネットの下」で 16 ビットを使用する場合は特に、Windows で、Python インターフェイスの目的でのみ、すべての UTF-16 C 文字列を UTF-8 C 文字列に変換することによるパフォーマンスの低下を回避したいと考えています。
この課題に取り組む方法についてのアイデアは高く評価されます。
ありがとう、トーマス