Ubuntu 12.04 で Python 3.4 で pypyodbc を使用しています。
列名を取得しようとしていますが、少し不安定です。戻ってくるのは、次のように、バイトとしての最初の文字だけです。
(Pdb) Cname.value
b'T'
舞台裏にあるのは ctypes char 配列です。
(Pdb) Cname
<ctypes.c_char_Array_1024 object at 0xb6a1ad1c>
しかし、生の値を見ると:
(Pdb) Cname.raw
b'T\x00Y\x00P\x00E\x00_\x00N\x00A\x00M\x00E\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
TYPE_NAME
値が で区切られていることがわかります\x00
。
そのため、何が起こっているのか (ctypes?) が\x00
、文字の一部ではなく文字列の null ターミネータとして最初にそれを読み取っているように見えます。
文字列全体を読み取るように ctypes の使用方法を変更するにはどうすればよいですか? 他のすべては正常に動作しているように見えますが、不安定なのは説明だけです。